0

WSE3.0を使用してSSL経由でWebサービス呼び出しを行う.NET2.0アプリケーションがあります。ここで説明されているレジストリ修正を適用した後、アプリケーションはWindowsXPで完全に動作します。

修正では、UseScsvForTlsエントリのDWORD値を次のレジストリパスのゼロ以外の値と一緒に使用して、TLSでのシグナリング用にSCSVを送信するように指示されています:HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL

同じアプリケーションをWindows7マシンで(レジストリの修正なしで)実行しようとすると、次のエラーが発生します。

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)  

私の質問は次のとおりです。このエラーを修正するためにWindows7で使用できるレジストリ修正はありますか?または、WSEはWindows 7ではサポートされていませんか?

4

1 に答える 1

2

問題は、レジストリの修正が必要なXPの問題と実際に似ていたことがわかりました。Wiresharkを使用してSSL要求と応答を確認しました。そのため、私が呼び出していたWebサービスは、Windows 7ではデフォルトでサポートされなくなった古いバージョンのSSL(バージョン3.0)を使用していることがわかりました。

修正は、次のコード行を追加して、クライアントにSSLv3の使用を強制することでした。

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
于 2010-11-19T16:54:33.513 に答える