我想使用基于通过添加服务引用生成的代码的 .NET 客户端连接到 SOAP Web 服务(HP Operations Manager 事件 Web 服务)。生成的代理会创建一个实现DuplexClientBase
该类的客户端。该服务是使用自签名证书托管的 IIS,我需要使用基本身份验证登录。
我在尝试连接到此服务时遇到了两个问题:
- 我还没有找到正确的绑定配置。绑定不支持具有基本身份验证的双工或 https 流量。
- 添加 .NET 2.0 Web 服务引用时(不存在绑定问题),我能够连接到服务,但服务所需的“Action”标头元素
<a:Action s:mustUnderstand="1"> http://schemas.xmlsoap.org/ws/2004/09/enumeration/Enumerate</a:Action>
不包含在标头中。当我创建 SoapExtensions 并在方法中检查对象Action
属性的内容时,它包含正确的值,但该属性未在消息头中序列化。SoapMessage
ProcessMessage(SoapMessage message)
我想知道你们中的任何人是否可以建议做什么:
- 继续使用 2.0 旧版引用,并找到一种在 SOAP 标头中添加 Action 元素的方法。(例如添加一个 SoapExtension)
- 修复绑定一个找到连接到带有错误证书的 https 站点的方法(
wsDualHttpBinding
不支持 HTTPS,BasicHttpBinding
不支持双工,PollingDuplexHttpBinding
在控制台应用程序中似乎不起作用) - 尝试以不需要双工通信的方式生成代码。这可能吗?