遇到混合连接异常:None 个连接的侦听器在允许的超时时间内接受了连接
Hybrid Connection Exception encountered: None of the connected listeners accepted the connection within the allowed timeout
我有一个到本地 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
抛出以下错误。
Hybrid Connection Exception encountered: None of the connected listeners accepted the connection within the allowed timeout.
遗憾的是,我不知道这是什么意思,有没有人遇到过上面的错误,搜索错误只能返回很少的结果。
如果我使用来自 Azure 的 SQLCMD,我会得到同样的错误,我已经尝试了完全限定的服务器名称,我已经检查了所需的端口和防火墙设置,如果我关闭 443 https 出站连接器显示断开连接。
好的,我一个月前解决了这个问题,基本上虽然服务总线地址被列入白名单,但混合连接器会产生多个连接来传输数据,所以虽然握手和初始连接可以与 Azure 通信,但其他任何东西都无法通信,因此时间到了。
我最终将我的中继所在的整个蔚蓝区域列入白名单。You can download all the azure data centre IP ranges here
我发现上面粘贴的 blog Mehdi Ibrahim 非常有用,在过去的 12 个月里,我被那里的每个问题所困扰。
我有一个到本地 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
抛出以下错误。
Hybrid Connection Exception encountered: None of the connected listeners accepted the connection within the allowed timeout.
遗憾的是,我不知道这是什么意思,有没有人遇到过上面的错误,搜索错误只能返回很少的结果。
如果我使用来自 Azure 的 SQLCMD,我会得到同样的错误,我已经尝试了完全限定的服务器名称,我已经检查了所需的端口和防火墙设置,如果我关闭 443 https 出站连接器显示断开连接。
好的,我一个月前解决了这个问题,基本上虽然服务总线地址被列入白名单,但混合连接器会产生多个连接来传输数据,所以虽然握手和初始连接可以与 Azure 通信,但其他任何东西都无法通信,因此时间到了。 我最终将我的中继所在的整个蔚蓝区域列入白名单。You can download all the azure data centre IP ranges here
我发现上面粘贴的 blog Mehdi Ibrahim 非常有用,在过去的 12 个月里,我被那里的每个问题所困扰。