我希望使用基于添加服务引用生成的代码的.NET客户端连接到SOAP Web服务(HP Operations Manager事件Web服务)。生成的代理创建实现DuplexClientBase
类的客户端。该服务是使用自签名证书托管的IIS,我需要使用基本身份验证登录。
我在尝试连接此服务时遇到两个问题:
<a:Action s:mustUnderstand="1"> http://schemas.xmlsoap.org/ws/2004/09/enumeration/Enumerate</a:Action>
未包含在标题中。当我创建SoapExtensions并检查Action
方法中SoapMessage
对象的ProcessMessage(SoapMessage message)
属性的内容时,它包含正确的值,但该属性未在消息头中序列化。 / LI>
我想知道你们中是否有人可以建议做什么:
wsDualHttpBinding
不支持HTTPS,BasicHttpBinding
不支持双工,PollingDuplexHttpBinding
似乎不起作用在控制台应用程序中)答案 0 :(得分:0)
可以使.NET 2.0客户端支持WS寻址。您可以通过下载和安装Webservice Enhancements 3.0(WSE)来实现此目的。 http://www.microsoft.com/en-us/download/details.aspx?id=14089
添加对Microsoft.Web.Services3程序集的引用并更改通过添加Web服务引用生成的代码时。将System.Web.Services.Protocols.SoapHttpClientProtocol
更改为Microsoft.Web.Services3.WebServicesClientProtocol
,代码将支持WS Adressing。现在将action元素添加到SOAP标头中。
虽然这种解决方法完成了这项工作,但我仍然更喜欢WCF服务引用连接。