SOAP服务器1.1使用为1.2定义的内容类型发送响应?
我尝试向服务器发送一个SOAP1.2请求,并收到以下异常
System.ServiceModel.CommunicationException:传入消息的信封版本(Soap11(http://schemas.xmlsoap.org/soap/envelope/))与编码器(Soap12(http://www.w3。组织/ 2003/05 / SOAP信封))。 确保绑定的配置与预期消息的版本相同。
在分析通过wireshark的流量时,我将响应信封视为http://schemas.xmlsoap.org/soap/envelope/并请求信封为http://www.w3.org/2003/05/soap-envelope
我再次尝试使用SOAP 1.1向同一服务器发送消息,并得到以下异常
System.ServiceModel.ProtocolException:响应消息的内容类型application / soap + xml与绑定的内容类型(text / xml; charset = utf-8)不匹配。 如果使用自定义编码器,请确保IsContentTypeSupported方法正确实施。
基于上述2个日志,我可以断定远程服务器正在使用SOAP1.1并使用为soap1.2定义的应用程序/ soap + xml中的内容类型发送响应吗? 这是SOAP规范的正确实现吗?
代码是使用WSDL的服务引用生成的。 以下是代码片段:
Test3.ServiceReference1.SoapRqst client = new Test3.ServiceReference1.SoapRqstClient();
RepRequest rqst = new RepRequest();
RepResponse op = client.getReply(rqst);
string responseSting = op.Body.respMsg;
Console.Out.Write(responseSting);
客户端服务模式:
服务绑定对于SOAP 1.1
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="<>" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="<>"
binding="basicHttpBinding" bindingConfiguration="<>"
contract="<>" name="<>" />
</client>
</system.serviceModel>
SOAP 1.2的服务绑定
<system.serviceModel>
<bindings>
<customBinding>
<binding name="">
<textMessageEncoding messageVersion="Soap12" />
<httpTransport />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="<>"
binding="customBinding" bindingConfiguration="<>"
contract="<>" name="<>" />
</client>
链接地址: http://www.djcxy.com/p/35309.html
上一篇: SOAP server 1.1 sending response using content type defined for 1.2?