0

我刚刚将 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 会生成这个元素?

4

1 回答 1

1

WCF 永远不应发送此元素({ http://schemas.microsoft.com/ws/2005/05/addressing/none }Action)。它有时会出现在 WCF 消息日志内部,但从未发送出去。这个标题很可能以某种方式出现在合同中。请发布您的绑定,如果此元素直接出现在您的代理代码中,请同时搜索。

于 2013-08-27T15:24:43.890 回答