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?

    下一篇: WS wrong namespace URI generated