0

wsaddressingをサポートするsoap1.1が必要な場合に、相互運用性をサポートするためにwsdlを定義しました。その結果、サービスをセットアップしたので、次のようにカスタムバインディングを使用してwcfサービスを構成しました。

 <customBinding>
  <binding name="CustomWsHttpSoap11" closeTimeout="00:01:00"
    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00">
    <textMessageEncoding messageVersion="Soap11WSAddressing10"/>
    <httpTransport maxReceivedMessageSize="2147483647" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                   useDefaultWebProxy="true">
    </httpTransport>
  </binding>
</customBinding>

<services>
      <service behaviorConfiguration="TEST.BattleMountain.TestService"
        name="TEST.BattleMountain.TestService">
        <endpoint address="" behaviorConfiguration="TestMethod"
          binding="customBinding" bindingConfiguration="CustomWsHttpSoap11"
          name="TestMethod-v2-0_pttBinding" bindingNamespace="urn:test:services:201005"
          contract="ITestMethodV20_ptt" />
</service>

SOAクリーナーを使用してテスト要求を作成すると、soap障害が発生します

メッセージ''で指定されたSOAPアクションは、HTTP SOAPアクション'urn:test:services:201005:TestMethod-v2-0'と一致しません。

なぜそうなるのかわかりません。次のようにリクエストしてください

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">urn:test:services:201005:TestMethod-v2-0</Action>
  </s:Header>
  <s:Body>
    <DistributionEnvelope xmlns="urn:test:ns:201005" />
  </s:Body>
</s:Envelope>
4

1 に答える 1

0

公開したリクエストは実際のリクエストではありません。実際に送信される SOAP アクションはありません (フィドラーを使用して確認してください)。そのため、クライアント (soacleaner?) は実際にはアクションを送信しません。詳細はこちらをご覧ください

于 2012-05-21T11:20:04.467 に答える