Я знаю, что это происходило миллион раз, но, видимо, не с .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()).
Я получаю эту ошибку при запуске сайта ASP.NET Core на сервере, на котором размещен SQL Server, но также с использованием разработчикамашина на клиенте 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.Я хотел бы получить помощь и указатели.
[EDIT] @TallTed это то, что установлено, он должен поддерживать TLS 1.2:
- Собственный клиент Microsoft SQL Server 2012 с версией
11.4.7001.0
- Драйвер Microsoft ODBC 17 для SQL Server с версией
17.3.1.1
- Драйвер Microsoft ODBC 11 для SQL Server с версией
12.2.5543.11
- Драйвер Microsoft ODBC 13 дляSQL Server с версией
14.0.1000.169