我正在尝试构建一个与第三方SOAPWeb服务交互的客户端。此web服务需要WSE安全性。
我从尝试与之交互的服务的WSDL生成了一个老派.asmx web服务。WSDL中没有关于WSE安全性的信息。
如果没有WSE安全性,我可以很好地连接。但是,我在.asmx web服务中添加了WSE安全性。
我向我的客户端添加了以下代码,以添加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(SoapClientMessage消息、WebResponse响应、流响应流、布尔异步调用)
位于System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName,Object[]parameters)
位于Reynolds.Core.STARProxy.STARWebService.ProcessMessage(有效载荷和有效载荷),位于C:\Projects\Reynolds.Core\ReynoldsCore\Web References\STARProxy\Reference.cs:line 105
在Reynolds.Core.Reynolds.SendGenericXMLRequest(XmlElement[]inputElements,String url,Guid[]guids)中,位于C:\Projects\Reynolds\Core\Reynolds.cs:line 191
位于Reynolds.Core.Reynolds.SendGenericSingleXMLRequest(XmlElement inputXML,String url,Guid-Guid),位于C:\Projects\Reynolds.Core\Reynolds\cs:line 125
在Reynolds.Core.Reynolds.SendGenericSingleXMLRequest(XmlElement inputXML,String url)中,位于C:\Projects\Reynolds.Core\Reynolds\Core\Reynold.cs:line 120
在Reynolds.Core.Reynolds.SendGenericSingleXMLRequest(XmlElement inputXML)中的C:\Projects\Reynolds.Core\Reynolds/cs:line 114
在Reynolds.Testing.GUI.Form1.btnProcessMessage_Click(Object sender,EventArgs e)中的C:\Projects\Reynolds\Testing\Reynolds.Testing.GUI\Form1.cs:line 33
这个例外并没有给我太多的工作机会。我试着在谷歌上搜索了很多次,但都没能找到。
这是我第一次使用WSE,所以任何帮助都将不胜感激。
异常状态为Server unavailable, please try later
。这意味着第三方web服务的URL错误,或者第三方服务器已关闭。