WCF是否支持SOAP 1.1的WS-Security?

我需要调用一些需要WS-Security的第三Web服务。 我使用以下配置创建了一个WCF端点:

                           

问题是第三方服务器抛出以下exception:

收到协议’_http://schemas.xmlsoap.org/wsdl/soap12/’,必需的协议’_http://schemas.xmlsoap.org/wsdl/soap/’。

据我所知,使用wsHttpBinding将导致WCF发送SOAP 1.2请求,而使用basicHttpBinding将导致SOAP 1.1请求。 由于WS-Security部分是必需的,据我所知,我必须使用wsHttpBinding。 我的问题是如何强制SOAP 1.1请求? 我有什么选择?

为了使用WS-Addressing( wsHttpBinding ),但是使用SOAP 1.1(默认为SOAP 1.2),您需要定义自定义WCF绑定(例如在config中)并使用它:

         

然后在您的端点定义中,使用:

  

当然,您可以使用其他属性扩展上面定义的自定义绑定,例如或其他属性。

有关WCF绑定的更详细,非常有用的信息以及如何在配置中“组合”自己的自定义绑定,请阅读这篇优秀的MSDN文章服务站:由Aaron Skonnard 深入研究WCF绑定 。

您必须使用BasicHttpBinding ,它还支持TransportWithMessageCredentials (SOAP 1.1 + HTTPS + WS-Security X.509证书令牌配置文件)或根据您的所有需求创建自定义绑定。