У меня есть гибридное подключение к локальному серверу MSSQL, я пытаюсь получить доступ к нему из приложения Node.js.
Приложение Node.js изначально было настроено для подключения к базе данных Azure, но требования изменились, и теперь необходимо считывать данные с локального сервера.
Я использовал гибридные соединения раньше, но в приложениях .net aspx.
Первоначальная ошибка, которую я получил от приложения, была
{
ConnectionError: Failed to connect to SERVERNAME:1433 in 15000ms
at ConnectionError (D:\home\site\wwwroot\node_modules\tedious\lib\errors.js:12:12)
at Connection.connectTimeout (D:\home\site\wwwroot\node_modules\tedious\lib\connection.js:944:28)
at Timeout._onTimeout (D:\home\site\wwwroot\node_modules\tedious\lib\connection.js:913:16)
at ontimeout (timers.js:365:14)
at tryOnTimeout (timers.js:237:5)
at Timer.listOnTimeout (timers.js:207:5)
message: 'Failed to connect to SERVERNAME:1433 in 15000ms',
code: 'ETIMEOUT'
}
Итак, я выполнил все обычные тесты подключения, проверил пользователей и разрешения SQL и т. Д.
Все указывало на гибридное соединение, но ретранслятор показывал соединение как на портале Azure, так и в диспетчере гибридных соединений на сервере.
Итак, я включил протоколирование гибридного соединения, чтобы узнать, даст ли это мне больше информации.
HYBRIDCONNECTIVITY_LOGGING_ENABLED 1
Который выдал следующую ошибку.
Гибридное соединение Обнаружено исключение: ни один из подключенных слушателей не принял соединение в течение разрешенного времени ожидания.
К сожалению, я понятия не имею, что это значит, кто-нибудь сталкивался с ошибкой выше, поиск ошибки возвращает очень мало результатов.
Я получаю ту же ошибку, если использую SQLCMD из Azure, я перепробовал полные имена серверов, проверил необходимые порты и настройки брандмауэра, если я закрываю 443 https, исходящий, соединитель показывает отключенный.