При использовании служебной программы SQLCMD возникают периодические ошибки подключения
Эта статья поможет устранить периодические проблемы с подключением "Ошибка ОС 10054", возникающие при использовании средства командной строки SQLCMD.
ошибки
Вы получаете следующие предупреждения и сообщения об ошибках:
ПРЕДУПРЕЖДЕНИЕ: proc_procname возвращены 0x2746 HResult, уровень 16, состояние 1
Поставщик TCP: существующее подключение было принудительно закрыто удаленным узлом.
SQLCMD.EXE : Sqlcmd: ошибка: Microsoft SQL Server Native Client 10.0: клиент не может установить подключение
Одна из возможных причин этих ошибок — неподдерживаемый драйвер.
Вопросы, на которые следует ответить
Просмотрите следующие сценарии, чтобы определить, соответствует ли проблема.
Вы собираете трассировку сети и узнаете, что tls 1.0 и 1.1 отключены, а tls 1.2 включен. На сервере под управлением SQL Server на сервере приложений включены TLS 1.0, 1.1 и 1.2.
Тест UDL на сервере приложений выполняется с помощью поставщика Microsoft OLE DB для SQL Server и поставщика SNAC 11. Подключение завершается ошибкой. Вы также получаете сообщение о том, что драйвер Microsoft OLE DB provider for SQL Server не рекомендуется и не поддерживает TLS 1.2.
Сервер приложений использует sql Server Native Client 11 для успешного тестирования источника данных ODBC. Если sql Server Native Client 10.0 не поддерживается, может появиться следующее сообщение об ошибке:
Сбой подключения с состоянием SQL: ошибка SQL Server 08001: 10054 [Microsoft][SQL Server Native Client 10.0]TCP Provider: существующее соединение было принудительно закрыто удаленным узлом. [Майкрософт][Собственный клиент SQL Server 10.0] Клиент не может установить подключение.
Это сообщение может отображаться, так как сервер приложений использует старую версию алгоритма Diffie-Hellman (версии 1) и SQL Server использует более новую версию (версии 2). Это несоответствие приводит к периодическим сбоям TLS.
Решение
Чтобы устранить эти проблемы, выполните следующие действия.
Укажите собственный клиент SQL Server 11 в строка подключения.
Примечание.
Корпорация Майкрософт больше не поддерживает SNAC 11. Если при использовании SNAC 11 возникают проблемы, необходимо обновить до поддерживаемой версии драйвера Майкрософт до технической поддержки.
Обновите драйвер приложения до поддерживаемого драйвера.
Используйте MSOLEDBSQL версии 18 или ODBC версии 17, если вы не используете шифрование для подключения. Если вы используете шифрование для подключения на сервере приложений, используйте MSOLEDBSQL версии 19 или ODBC версии 18. По умолчанию эти драйверы включены вместе с шифрованием. Дополнительные сведения см. в следующих статьях:
См. также
Существующее подключение было принудительно закрыто удаленным узлом (ошибка ОС 10054)