重新打开这个问题。
https://github.com/tediousjs/tedious/issues/833
我试过 tedious-connection-pool 和 node-mssql 模块都抛出同样的错误。
@aniltomar10你
尝试使用 AAD 身份验证连接到 SQL Azure DB 时,我也面临同样的问题。 我的服务还连接到另一个仅使用 SQL 身份验证的 SQL Azure DB,并且该连接工作正常。 只有 AAD 身份验证失败。 当我进行一些日志流捕获时,我看到每次连接尝试超时之前都会抛出此错误:
Error: No event 'routingChange' in state 'SentLogin7Withfedauth'
at new Error (native)
at Connection.dispatchEvent (D:\home\site\wwwroot\server.js:269168:26)
at Parser.tokenStreamParser.on.token (D:\home\site\wwwroot\server.js:268857:12)
at Zone.runTask (D:\home\site\wwwroot\server.js:259175:47)
at Parser.ZoneTask.invoke (D:\home\site\wwwroot\server.js:259369:33)
at emitOne (events.js:96:13)
at Parser.emit (events.js:188:7)
at Parser.parser.on.token (D:\home\site\wwwroot\server.js:274976:14)
at Zone.runTask (D:\home\site\wwwroot\server.js:259175:47)
at Parser.ZoneTask.invoke (D:\home\site\wwwroot\server.js:259369:33)
at emitOne (events.js:96:13)
这是我记录到应用洞察中的异常堆栈跟踪:
ConnectionError:
at ConnectionError (at ConnectionError (D:\home\site\wwwroot\server.js:34539:12)
at ConnectionError (D:\home\site\wwwroot\server.js:34539:12): D:\home\site\wwwroot\server.js
at ConnectionError (D:\home\site\wwwroot\server.js:34539:12): 34539)
at Connection.connectTimeout (at Connection.connectTimeout (D:\home\site\wwwroot\server.js:269106:26)
at Connection.connectTimeout (D:\home\site\wwwroot\server.js:269106:26): D:\home\site\wwwroot\server.js
at Connection.connectTimeout (D:\home\site\wwwroot\server.js:269106:26): 269106)
at Timeout.connectTimer.setTimeout (at Timeout.connectTimer.setTimeout (D:\home\site\wwwroot\server.js:269080:12)
at Timeout.connectTimer.setTimeout (D:\home\site\wwwroot\server.js:269080:12): D:\home\site\wwwroot\server.js
at Timeout.connectTimer.setTimeout (D:\home\site\wwwroot\server.js:269080:12): 269080)
at ZoneDelegate.invokeTask (at ZoneDelegate.invokeTask (D:\home\site\wwwroot\server.js:259299:35)
at ZoneDelegate.invokeTask (D:\home\site\wwwroot\server.js:259299:35): D:\home\site\wwwroot\server.js
at ZoneDelegate.invokeTask (D:\home\site\wwwroot\server.js:259299:35): 259299)
at Zone.runTask (at Zone.runTask (D:\home\site\wwwroot\server.js:259175:47)
at Zone.runTask (D:\home\site\wwwroot\server.js:259175:47): D:\home\site\wwwroot\server.js
at Zone.runTask (D:\home\site\wwwroot\server.js:259175:47): 259175)
at Timeout.ZoneTask.invoke (at Timeout.ZoneTask.invoke (D:\home\site\wwwroot\server.js:259369:33)
at Timeout.ZoneTask.invoke (D:\home\site\wwwroot\server.js:259369:33): D:\home\site\wwwroot\server.js
at Timeout.ZoneTask.invoke (D:\home\site\wwwroot\server.js:259369:33): 259369)
at Timeout.data.args.(anonymous function) [as _onTimeout] (at Timeout.data.args.(anonymous function) [as _onTimeout] (D:\home\site\wwwroot\server.js:260383:25)
at Timeout.data.args.(anonymous function) [as _onTimeout] (D:\home\site\wwwroot\server.js:260383:25): D:\home\site\wwwroot\server.js
at Timeout.data.args.(anonymous function) [as _onTimeout] (D:\home\site\wwwroot\server.js:260383:25): 260383)
at ontimeout (at ontimeout (timers.js:365:14)at ontimeout (timers.js:365:14): timers.js
at ontimeout (timers.js:365:14): 365)
at tryOnTimeout (at tryOnTimeout (timers.js:237:5)at tryOnTimeout (timers.js:237:5): timers.js
at tryOnTimeout (timers.js:237:5): 237)
at Timer.listOnTimeout (at Timer.listOnTimeout (timers.js:207:5)
at Timer.listOnTimeout (timers.js:207:5): timers.js
at Timer.listOnTimeout (timers.js:207:5): 207)
我不确定@aniltomar10是否也面临同样的问题,但我认为在这种情况下可能是相关的。
当我在我的开发机器上本地运行该服务时,一切正常。 当我将服务部署到 azure 应用服务时,它开始失败。
环境细节:
NodeJS 版本:8.11.1
乏味的版本:4.1.1
如果我可以添加更多详细信息,请告诉我。
谢谢,
沙纳兹。
另一个更新:
根据错误,我分叉并在 connection.js 文件中进行了一些小的更改,以在馈送身份验证状态中添加丢失的事件:
'routingChange' 状态为 'SentLogin7Withfedauth'
然后事情似乎工作正常,我在 azure app service env 中的服务也能够连接到服务器并获取数据。 见参考:
https://github.com/shani117/tedious/commit/0777bf6f5ad7f1701a355f8e706fd0ce5120eda4
我还没有准备好做 PR,但只是想把它拿出来看看我是否走上了正确的道路。
反馈表示赞赏。
@shani117哇哦,是的,我想你已经找到了这个问题的根本原因! 我会看看我明天是否可以用你的更改打开一个 PR 来正确修复这个问题。 非常感谢! 🙇
最有用的评论
另一个更新:
根据错误,我分叉并在 connection.js 文件中进行了一些小的更改,以在馈送身份验证状态中添加丢失的事件:
'routingChange' 状态为 'SentLogin7Withfedauth'
然后事情似乎工作正常,我在 azure app service env 中的服务也能够连接到服务器并获取数据。 见参考:
https://github.com/shani117/tedious/commit/0777bf6f5ad7f1701a355f8e706fd0ce5120eda4
我还没有准备好做 PR,但只是想把它拿出来看看我是否走上了正确的道路。
反馈表示赞赏。