什么可能导致这必须理解元素

时间:2013-08-27 12:09:04

标签: wcf soap-client

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

1 个答案:

答案 0 :(得分:0)

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