WSE 3.0 Windows 7 兼容性
我有一个 .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?
I have a .NET 2.0 application that uses WSE 3.0 to make web service calls over SSL. The application works perfectly on Windows XP after I apply a registry fix which is explained here.
The fix says to use the UseScsvForTls entry DWORD value together with a nonzero value in the following registry path to send SCSV for signaling in TLS:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL
When I try to run the same application on a Windows 7 machine (without any registry fix), I get the following error:
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)
My question is: Is there a registry fix I can use on Windows 7 to fix this error? Or is WSE not supported on Windows 7?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
事实证明,这个问题确实与 XP 上的问题类似,需要修复注册表。我使用 Wireshark 检查 SSL 请求和响应。结果发现我正在调用的 Web 服务使用旧版本的 SSL(版本 3.0),Windows 7 默认情况下不再支持该版本。
修复方法是添加这行代码以强制客户端使用 SSLv3 :
It turns out the problem was indeed similar to the one on XP which required a registry fix. I used Wireshark to check the SSL request and response. So it turned out the web service I was making calls to, uses an old version of SSL (version 3.0) which is no longer supported by default on Windows 7.
The fix was to add this line of code to force the client to use SSLv3: