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证书令牌配置文件)或根据您的所有需求创建自定义绑定。