私はこれが何百万回も出てきたことを知っていますが、どうやら .NET Core を使用してSystem.Data.Odbc
.
レジストリで TLS 1.0 を無効にすると、次のエラーが表示されます。
{System.Data.Odbc.OdbcException (0x80131937): ERROR [08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SSL Security error
ERROR [01000] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (SECDoClientHandshake()).
SQL Server をホストするサーバーで ASP.NET Core サイトを実行しているときに、Windows 10 クライアントで開発マシンを使用してリモート SQL Server に接続すると、このエラーが発生します。
SSMS は、サーバーとクライアントの両方で正常に実行され、接続されます。TLS 1.0 サポートをオンにして SQL Server を再起動すると、サイトはサーバーとクライアントの両方で正常に動作します。(違いを確認するために再起動する必要はありません)。
どこかでこれが不要になったことを読んだにもかかわらず、FIPS サポートを有効にしたことを確認するために。
これは構成です:
- Windows Server 2016 (最新)
- 最新の更新プログラムを適用した SQL Server 2016 SP2
- 念のため、.NET 4.7 も使用していませんが、インストールしました。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server] "Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server] "DisabledByDefault"=dword:00000001
私の疑いは、System.Data.Odbc
.NET Standard 2.0 が 1.2 をサポートしていないことです。いくつかの助けと指針を得たいと思います。
[編集] @TallTed これがインストールされているもので、TLS 1.2 をサポートする必要があります。
- バージョンの Microsoft SQL Server 2012 ネイティブ クライアント
11.4.7001.0
- Microsoft ODBC Driver 17 for SQL Server バージョン付き
17.3.1.1
- Microsoft ODBC Driver 11 for SQL Server とバージョン
12.2.5543.11
- Microsoft ODBC Driver 13 for SQL Server とバージョン
14.0.1000.169