-6ren">
gpt4 book ai didi

c# - xop+xml 和 soap+xml 之间的 WCF 类型不匹配

转载 作者:行者123 更新时间:2023-11-30 18:11:29 25 4
gpt4 key购买 nike

我正在尝试连接到描述为 .wsdl 文件的第三方服务。我无法提供整个文件,因为它太长了,但重要的部分是:

<wsdl:port name="ec2HttpSoap12Endpoint" binding="tns:ec2Soap12Binding">
<soap12:address location="<service url>.ec2HttpSoap12Endpoint/"/>
</wsdl:port>

<wsdl:binding name="ec2Soap12Binding" type="tns:ec2PortType">
<soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="someOperation">
<soap12:operation soapAction="urn:someOperation" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
...
</wsdl:binding>

我的代码很简单:

ec2PortTypeClient client = new ec2PortTypeClient("ec2HttpSoap12Endpoint", "<service url>");
var response = ePortConnect.someOperation(...).Result.@return;

但我得到一个异常(exception):

ProtocolException: The content type multipart/related; boundary="MIMEBoundary_f9ac1ac9023b2de2dbb6e3f07d0952ff0bbdfdd7433cd9ec"; type="application/xop+xml"; start="<0.e9ac1ac9023b2de2dbb6e3f07d0952ff0bbdfdd7433cd9ec@apache.org>"; start-info="application/soap+xml"; action="urn:someOperation" of the response message does not match the content type of the binding (application/soap+xml; charset=utf-8). ... The first 1024 bytes of the response were:

然后来自服务器的完全正常的响应!

看起来定义是正常的,但是响应类型应该设置为XOP,或者我的C#代码是错误的。服务器正常响应,但由于类型不匹配而未解析响应。我做错了什么?

供应商声称 .wsdl 是正确的,我相信他们。但是我的两行代码可能有什么问题?

Link到一个完整的 .wsdl 文件。

最佳答案

尝试使用 Mtom 而不是文本来对 SOAP 消息进行编码。

Config: <binding messageEncoding="Mtom"> Code: binding.MessageEncoding = WSMessageEncoding.Mtom;

关于c# - xop+xml 和 soap+xml 之间的 WCF 类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58051858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com