在wsHttpBinding中设置TextMessageEncoding-message版本

时间:2018-03-06 00:31:10

标签: wcf wshttpbinding

我正在尝试使用wsHttpBinding调用SOAP1.2服务。该服务接受拒绝默认的 Soap12WSAddressing10 消息版本。它只接受 SOAP12

我可以从Internet搜索获得的一个建议是在自定义绑定中创建TextMessageEncodingElement。

如何使用代码或配置完成?

WSHttpBinding myBinding = new WSHttpBinding();   
myBinding.Security.Mode = SecurityMode.Transport;            
myBinding.Security.Transport.ClientCredentialType = 
HttpClientCredentialType.Certificate;
//MessageVersion = SOAP12

在使用自定义wsBinding时,没有建议的占位符来指定消息版本。

<wsHttpBinding>       
<binding name="customWS">          
<security mode="Transport">
<message clientCredentialType="Certificate"></message>            
</security>          
</binding>
</wsHttpBinding>

1 个答案:

答案 0 :(得分:0)

Soap12通过content-type标头指定soapaction。我认为它不是在网络核心中实现的。我使用以下代码。

var encoding = new TextMessageEncodingBindingElement(MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None), Encoding.UTF8);

但这不是在网络核心中实现的。