WCF正在添加一个带有" MustUnderstand"的信封标题。我无法控制的第三方服务无法处理

时间:2015-09-23 20:17:58

标签: c# .net wcf soap

我已将问题归结为下面的<Action s:mustUnderstand="1"位。

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header>
        <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none"></Action>
        <ActivityId CorrelationId="ec9c7c4e-2e7e-4310-8ad1-99e453b29560" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">45abb8ea-8d9f-4fc2-aeb7-580884cae02e</ActivityId>
    </s:Header>
    <s:Body>
        [redacted]
    </s:Body>
</s:Envelope>

mustUnderstand=1存在服务barfs时,返回Web服务器500错误页面,而不是xml;随着它mustUnderstand=0或整个<Action被删除它就像一个梦想。

我已经尝试了标准basicHttpBinding以及以下customBinding尝试简化来自here的消息:

<binding name="httpSoap12">
   <textMessageEncoding messageVersion="Soap12" />
   <httpTransport />
</binding>

我看到很多人都在为这个特殊问题苦苦挣扎;但似乎没有人能找到我能找到的解决方案。

删除动作位批发,或设置mustUnderstand =&#34; 0&#34;两者都允许服务处理我的传入消息。我欢迎一个解决方案来做其中任何一个,或者我还没想到的替代方案。我应该指定我已经手动完成了删除/修改。我无法从我的代码中找到一种方法。

0 个答案:

没有答案