由WSDL生成的代码在信封中的SOAP版本

本文关键字:SOAP 版本 代码 WSDL | 更新日期: 2023-09-27 18:18:59

我正在研究一个由WSDL生成的服务的解决方案。当我调用服务时,我得到一个错误的请求。我已经启用了跟踪,并且发送的消息具有以下信封:

<s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope">

当我尝试使用cURL时,我得到一个错误,说"InputStream不代表有效的SOAP 1.1消息",当然,当我将xmlns:s更改为使用SOAP 1.1版本时,工作完全正常。

在WSDL中绑定是:

<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />

,从我所发现的,SOAP 1.1。

如何修改WSDL或生成的代码以发送具有正确SOAP版本的消息?

由WSDL生成的代码在信封中的SOAP版本

只需在绑定中添加textMessageEncoding

<customBinding>
    <binding name="wsHttpEndpointBinding">
      <textMessageEncoding messageVersion="Soap11" />