我的服务运行良好如果我通过我的客户端应用程序使用它。我使用相同的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。
答案 0 :(得分:40)
问题是因为Request消息缺少To标头。在消息编辑器上,在请求消息窗口的下方,单击按钮WS-A
。然后选中复选框Add default wsa:To
现在运行您的请求,服务运行正常。
希望有所帮助。
如果确实解决了您的问题,请将其标记为答案。
答案 1 :(得分:3)
您还需要将 WS-ReliableMessaging 设置为 true 。
答案 2 :(得分:3)
在biztalk server 2013 r2中发生了同样的问题。 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>
&#13;
答案 3 :(得分:1)
您的WCF服务似乎利用WS-Addressing标准来标识需要向其提交消息的接收位置。省略时,会导致错误消息中报告的空目标地址。尝试在请求属性中将WS-Addressing属性设置为true
。