SOAP server 1.1 sending response using content type defined for 1.2?
I tried sending a SOAP1.2 request to a server and received following exception
System.ServiceModel.CommunicationException: The envelope version of the incoming message (Soap11 (http://schemas.xmlsoap.org/soap/envelope/)) does not match that of the encoder (Soap12 (http://www.w3.org/2003/05/soap-envelope)). Make sure the binding is configured with the same version as the expected messages.
On analyzing the traffic through wireshark, I see the response envelope as http://schemas.xmlsoap.org/soap/envelope/ and request envelope as http://www.w3.org/2003/05/soap-envelope
Again I tried sending message to same server using SOAP 1.1 and got following exception
System.ServiceModel.ProtocolException: The content type application/soap +xml of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly.
Based on above 2 logs, can I conclude the remote server is using SOAP1.1 and sending the response using content type defined for SOAP1.2 which is application/soap+xml? Is it the right implementation of SOAP specification?
Code was generated using Service reference from WSDL. Following is the code snippet:
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);
Client side service model:
Service binding For SOAP 1.1
   <system.serviceModel>
   <bindings>
        <basicHttpBinding>
            <binding name="<>"  />
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="<>"
            binding="basicHttpBinding" bindingConfiguration="<>"
            contract="<>" name="<>" />
    </client>
</system.serviceModel>
 Service binding for 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>
上一篇: SOAP请求使用nodejs
