[英]WSE 3.0 Windows 7 Compatibility
我有一個.NET 2.0應用程序,它使用WSE 3.0通過SSL進行Web服務調用。 該應用程序完美的作品在Windows XP我申請這說明一個注冊表修復后這里 。
修復程序說使用UseScsvForTls條目DWORD值以及以下注冊表路徑中的非零值來發送SCSV以在TLS中發送信號:HKEY_LOCAL_MACHINE \\ System \\ CurrentControlSet \\ Control \\ SecurityProviders \\ SCHANNEL
當我嘗試在Windows 7計算機上運行相同的應用程序(沒有任何注冊表修復程序)時,出現以下錯誤:
The underlying connection was closed: An unexpected error occurred on a send.- at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)
at Microsoft.Web.Services3.WebServicesClientProtocol.GetResponse(WebRequest request, IAsyncResult result)
at Microsoft.Web.Services3.WebServicesClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
我的問題是:我是否可以在Windows 7上使用注冊表修復來修復此錯誤? 還是Windows 7不支持WSE?
事實證明,該問題確實與XP中需要注冊表修復的問題相似。 我使用Wireshark來檢查SSL請求和響應。 事實證明,我調用的Web服務使用舊版本的SSL(版本3.0),Windows 7上默認不再支持該版本。
解決方法是添加以下代碼行,以強制客戶端使用SSLv3:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.