在WCF客户端中修改SOAP标头Mustunderstand属性

时间:2010-11-12 22:56:39

标签: wcf soap wcf-client soapheader

我正在为服务(而不是WCF)编写WCF客户端。获取未处理的'mustUnderstand'标题元素的错误:{http://www.w3.org/2005/08/addressing}Action,因为请求SOAP包含带有mustunderstand ='true'的标头。我必须将其设置为false或删除整个标头。你能说明这样做吗?

这是绑定代码

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;

2 个答案:

答案 0 :(得分:3)

我通过将AddressingVersion设置为None而没有放置SOAP标头来解决这个问题。

这是代码

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

答案 1 :(得分:1)

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