我正在尝试构建与第三方SOAP Web服务交互的客户端。此Web服务需要WSE安全性。WSE Web服务客户端SoapHeaderException
我从服务的WSDL中生成一个旧学校.asmx Web服务,我尝试与之交互。 WSDL没有关于WSE安全性的信息。
没有WSE安全我可以连接好。不过,我将WSE安全性添加到了我的.asmx Web服务。
我下面的代码添加到我的客户端添加WSE用户名和密码
SoapContext requestContext = host.RequestSoapContext;
UsernameToken userToken = new UsernameToken("username", "password", PasswordOption.SendPlainText);
requestContext.Security.Tokens.Add(userToken);
但是,现在当我打电话的ProcessMessage方法我得到下面的异常不告诉我很多:
System.Web.Services.Protocols.SoapHeaderException:服务器不可用,请稍后再试
在System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMe ssage消息,WebResponse的响应,流responseStream,布尔asyncCall)
在System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(字符串方法名,对象[]参数)
在Reynolds.Core.STARProxy.STARWebService。 ProcessMessage的(有效载荷&有效载荷)在C:\项目\ Reynolds.Core \ Reynolds.Core \ Web引用\ STARProxy \ Reference.cs:线105
在Reynolds.Core.reynolds.SendGenericXMLRequest(XmlElement的[] inputElements,字符串url,Guid [] guids)在C:\ Projects \ Reynolds.Core \ Reynolds.Core \ Reynolds.cs中:第191行
在Reynolds.Core.reynolds.SendGenericSingleXMLRequest(XmlElement的inputXML,字符串URL,的Guid GUID)在C:\项目\ Reynolds.Core \ Reynolds.Core \ Reynolds.cs:线125
在Reynolds.Core.reynolds .SendGenericSingleXMLRequest(XmlElement的inputXML,字符串URL)在C:\项目\ Reynolds.Core \ Reynolds.Core \ Reynolds.cs:线120
在Reynolds.Core.reynolds.SendGenericSingleXMLRequest(的XmlElement inputXML)在C:\项目\ Reynolds.Core \ Reynolds.Core \ Reynolds.cs:线114
在Reynolds.Testing.GUI.Form1.btnProcessMessage_Click(对象发件人,EventArgs e)如C:\项目\ Reynolds.Testing \ Reynolds.Testing。 GUI \ Form1.cs中:行33
这个例外并没有给我太多的帮助。我尝试了各种谷歌搜索,但无法获得任何地方。
这是我第一次使用WSE,所以任何帮助,将不胜感激。
WSE已过时。它在六年前被WCF取代。您应该使用WCF进行新的开发。 – 2013-02-08 22:18:21
我只是建立客户端而不是服务。该服务需要WSE。我可以构建一个使用WSE的WCF客户端吗? – jkruer01 2013-02-08 22:25:56
在大多数情况下,您可以为WSE服务构建一个WCF客户端。问题可能出现在WSE不标准的地方(在标准完成之前发货)。在这种情况下,您可能必须更改WCF配置以匹配非标准。 – 2013-02-08 23:18:08