0

我正在尝试构建一个与第 3 方 SOAP Web 服务交互的客户端。此 Web 服务需要 WSE 安全性。

我从我尝试与之交互的服务的 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(SoapClientMessage 消息,WebResponse 响应,流 responseStream,布尔 asyncCall)

在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(字符串方法名,对象 [] 参数)

在 C:\Projects\Reynolds.Core\Reynolds.Core\Web References\STARProxy\Reference.cs:line 105 中的 Reynolds.Core.STARProxy.STARWebService.ProcessMessage(Payload& payload)

在 Reynolds.Core.reynolds.SendGenericXMLRequest(XmlElement[] inputElements, String url, Guid[] guids) 在 C:\Projects\Reynolds.Core\Reynolds.Core\Reynolds.cs:line 191

在 C:\Projects\Reynolds.Core\Reynolds.Core\Reynolds.cs:line 125 中的 Reynolds.Core.reynolds.SendGenericSingleXMLRequest(XmlElement inputXML, String url, Guid guid)

在 Reynolds.Core.reynolds.SendGenericSingleXMLRequest(XmlElement inputXML, String url) 在 C:\Projects\Reynolds.Core\Reynolds.Core\Reynolds.cs:line 120

在 C:\Projects\Reynolds.Core\Reynolds.Core\Reynolds.cs:line 114 中的 Reynolds.Core.reynolds.SendGenericSingleXMLRequest(XmlElement inputXML)

在 C:\Projects\Reynolds.Testing\Reynolds.Testing.GUI\Form1.cs:line 33 中的 Reynolds.Testing.GUI.Form1.btnProcessMessage_Click(Object sender, EventArgs e)

这个例外并没有真正让我在这里工作。我尝试进行各种谷歌搜索,但无法到达任何地方。

这是我第一次使用 WSE,因此将不胜感激。

4

1 回答 1

-1

异常状态Server unavailable, please try later。这意味着您的第 3 方 Web 服务的 URL 有误,或者第 3 方服务器已关闭。

于 2013-02-08T22:02:22.753 回答