SOAP服务器1.1使用为1.2定义的内容类型发送响应?

时间:2015-05-12 02:01:09

标签: wcf soap soap-client

  1. 我尝试向服务器发送SOAP1.2请求并收到以下异常

      

    System.ServiceModel.CommunicationException:传入邮件的信封版本(Soap11(http://schemas.xmlsoap.org/soap/envelope/))不   匹配编码器的那个(Soap12(http://www.w3.org/2003/05/soap-envelope))。确保使用与预期消息相同的版本配置绑定。

  2. 在通过wireshark分析流量时,我看到响应信封为http://schemas.xmlsoap.org/soap/envelope/,请求信封为http://www.w3.org/2003/05/soap-envelope

    1. 我再次尝试使用SOAP 1.1向同一服务器发送消息并获得以下异常

        

      System.ServiceModel.ProtocolException:内容类型application / soap   + xml的响应消息与绑定的内容类型不匹配   (text / xml; charset = utf-8)。如果使用自定义编码器,请确保   IsContentTypeSupported方法正确实现。

    2. 根据以上2个日志,我可以得出结论远程服务器正在使用SOAP1.1并使用为SOAP1.2定义的内容类型发送响应,即application / 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>
      

0 个答案:

没有答案