クライアントアプリケーションを介して使用すると、サービスは正常に実行されます。同じwsdlを使用してSOAPUIをロードしています。各メソッドのサンプルテストが正常に作成されました。リクエストを送信したいのですが、それに応じてレスポンスが生成されます。リクエストプロパティで正しいエンドポイントアドレスを確認できます。 SOAP XMLを自動的に生成しました。応答を得るために実行しようとすると、次のエラーが発生します。
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
<s:Header>
<a:Action s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/soap/fault</a:Action>
</s:Header>
<s:Body>
<s:Fault>
<s:Code>
<s:Value>s:Sender</s:Value>
<s:Subcode>
<s:Value>a:DestinationUnreachable</s:Value>
</s:Subcode>
</s:Code>
<s:Reason>
<s:Text xml:lang="en-GB">The message with To '' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher. Check that the sender and receiver's EndpointAddresses agree.</s:Text>
</s:Reason>
</s:Fault>
ここで何が問題になっているのかを他にどこで確認できるかわかりません。誰かがこの点で私を助けてくれませんか。私はSOAPUI4.0.1を使用しています。
問題は、RequestメッセージにToヘッダーがないためです。メッセージエディタで、リクエストメッセージウィンドウのすぐ下にあるボタンWS-A
をクリックします。次に、チェックボックスAdd default wsa:To
を選択します
ここでリクエストを実行すると、サービスは正常に実行されます。
お役に立てば幸いです。
問題が解決した場合は、回答としてマークしてください。
また、WS-ReliableMessagingをtrueに設定する必要があります。
同じ問題がbiztalkサーバー2013r2でも発生しました。 this 私のために働いた。結果を返送するには、エンドポイントの場所についてbiztalkに通知する必要があると思います。 soapuiで実行されるテストスクリプトは次のようになります。
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:cal="http://CallExec.PO">
<soap:Header>
<To soap:mustUnderstand="1" xmlns="http://www.w3.org/2005/08/addressing">http://biztalktbtk/CallOrchestration/Service1.svc</To>
</soap:Header>
<soap:Body>
<cal:PO>
<PO_Num>1</PO_Num>
<Weight>1</Weight>
<shipmentPrice>1</shipmentPrice>
</cal:PO>
</soap:Body>
</soap:Envelope>
WCFサービスは、WS-Addressing標準を利用して、メッセージの送信先となる受信場所を特定しているようです。省略すると、エラーメッセージで報告される宛先アドレスが空になります。リクエストプロパティでWS-Addressingプロパティをtrue
に設定してみてください。