2010-11-12 56 views
1

我正在为一个服务(不是WCF)编写一个WCF客户端。获取未处理'mustUnderstand'标题元素的错误:{http://www.w3.org/2005/08/addressing}Action,因为请求SOAP包含mustunderstand ='true'的标头。我必须将其设置为false或删除整个标题。你可以展示如何做到这一点?修改SOAP头WCF客户端中的Mustunderstand属性

这里是绑定代码

var transportElement = new HttpsTransportBindingElement(); 
     transportElement.AuthenticationScheme = AuthenticationSchemes.Basic; 

     var messegeElement = new TextMessageEncodingBindingElement(); 
     messegeElement.MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap11); 

     var binding = new CustomBinding(messegeElement, transportElement); 
     return binding; 
+0

为什么你需要删除标题?你在客户端使用什么绑定?提示的标题来自WS-Addressing,它也可以在WCF中打开。 – 2010-11-13 18:38:17

+0

服务不喜欢标题。获取此异常System.ServiceModel.ProtocolException:未处理的'mustUnderstand'标题元素:{http://www.w3.org/2005/08/addressing}Action。在问题 – Amzath 2010-11-15 16:24:38

回答

2

我解决了这个一个通过设置AddressingVersion到无未把SOAP头。

这里是代码

MessageVersion.CreateVersion(EnvelopeVersion.Soap11, AddressingVersion.None) 
+0

中添加了我的自定义绑定代码这是多年后,这似乎仍然是一个问题。但是,此修复程序对我无效。 Mustunderstand =“1”仍然存在于我的安全头文件中。 – 2017-12-07 16:07:29

0

指定messageVersion解决我的问题。 <mtomMessageEncoding messageVersion="Soap12"/>