我有一个到本地 MSSQL 服务器的混合连接,我正在尝试从 Node.js 应用程序访问它。
Node.js 应用程序最初设置为连接到 Azure DB,但要求已更改,现在需要从本地服务器读取数据。
我以前使用过混合连接,但在 .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
这引发了以下错误。
遇到混合连接异常:所有连接的侦听器均未在允许的超时时间内接受连接。
可悲的是我不知道这意味着什么,有没有人遇到过上面的错误,搜索错误带来的结果很少。
如果我使用 Azure 中的 SQLCMD,我会遇到同样的错误,我尝试了完全限定的服务器名称,我检查了所需的端口和防火墙设置,如果我关闭 443 https 出站连接器显示已断开连接。