首页 > 解决方案 > 错误:客户端找到“多部分/相关 C# asmx 客户端”的响应内容类型

问题描述

我正在尝试创建一个 Web 服务客户端(asmx),从另一台主机连接到 Web 服务(.svc)。我使用添加 Web 引用在项目中生成服务类。但是,例如,当我调用 getData() 时,我收到此错误:

System.InvalidOperationException: Client found response content type of 'multipart/related; type="application/xop+xml";start="<http://tempuri.org/0>";boundary="uuid:*****************+id=1";start-info="text/xml"', but expected 'text/xml'.

The request failed with the error message:

--



--uuid:********************+id=1

Content-ID: <http://tempuri.org/0>

Content-Transfer-Encoding: 8bit

Content-Type: application/xop+xml;charset=utf-8;type="text/xml"



<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://www.w3.org/2005/08/addressing"><s:Header><a:Action s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/fault</a:Action><a:FaultDetail><a:ProblemHeaderQName>a:Action</a:ProblemHeaderQName></a:FaultDetail></s:Header><s:Body><s:Fault><faultcode>a:ActionMismatch</faultcode><faultstring xml:lang="en-US">The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://tempuri.org/ICustomService/GetData'. </faultstring></s:Fault></s:Body></s:Envelope>

--uuid:***************************+id=1--

我尝试使用soapUI。它工作正常,这是 RAW 响应

HTTP/1.1 200 OK
Cache-Control: private
Transfer-Encoding: chunked
Content-Type: multipart/related; type="application/xop+xml";start="<http://tempuri.org/0>;"start-info="text/xml"
MIME-Version: 1.0

--uuid:****************
Content-ID: <http://tempuri.org/0>
Content-Transfer-Encoding:8bit
Content-Type:application/xop+xml;charset=utf-8;type="text-xml"

<s:Envelope............

顺便说一句,服务 url 会自动添加到applicationSettings标记中,例如。

<applicatonSettings>
   <my_service.Properties.Settings>
        <setting name="my_service.serviceInquriy.CustomService" serializeAs="String">
            <value>http://serviceurl/serviceInquriy.svc</value>
        </setting>
   </my_service.Properties.Settings>
</applicatonSettings>

标签: c#web-servicessoapasmxsvc

解决方案


推荐阅读