我刚刚将 java web 服务的 wsdl 导入到 .net WCF 客户端项目中。
当我运行客户端时,它失败了。
为了分析错误,我记录了soap 请求并从一个SOAP UI 项目发送它。我收到以下错误:
<soapenv:Fault xmlns:axis2ns35="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Code>
<soapenv:Value>axis2ns35:MustUnderstand</soapenv:Value>
</soapenv:Code>
<soapenv:Reason>
<soapenv:Text xml:lang="en-US">Must Understand check failed for headers: {http://schemas.microsoft.com/ws/2005/05/addressing/none}Action</soapenv:Text>
</soapenv:Reason>
<soapenv:Detail/>
</soapenv:Fault>
这是由 SOAP 请求中的以下行引起的:
<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none"/>
问题是,为什么 WCF 会生成这个元素?