我知道这已经出现了一百万次,但显然不是 .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
for .NET Standard 2.0 不支持 1.2。我很想得到一些帮助和指点。
[编辑] @TallTed 这是安装的,它应该支持 TLS 1.2:
- Microsoft SQL Server 2012 Native Client 带版本
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