我正在嘗試構建與第三方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