我刚刚将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生成这个元素?
答案 0 :(得分:0)
WCF永远不应该发送此元素({http://schemas.microsoft.com/ws/2005/05/addressing/none}动作)。它有时会出现在WCF消息日志的内部,但从未发送过。很可能这个标题以某种方式出现在合同中。请发布您的绑定,并在您的代理代码中搜索此元素是否直接显示在那里。