WSE 3.0 Windows 7 兼容性

发布于 2024-09-29 21:42:59 字数 1042 浏览 3 评论 0原文

我有一个 .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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

做个ˇ局外人 2024-10-06 21:42:59

事实证明,这个问题确实与 XP 上的问题类似,需要修复注册表。我使用 Wireshark 检查 SSL 请求和响应。结果发现我正在调用的 Web 服务使用旧版本的 SSL(版本 3.0),Windows 7 默认情况下不再支持该版本。

修复方法是添加这行代码以强制客户端使用 SSLv3 :

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

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:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文