Reabrindo este problema.
https://github.com/tediousjs/tedious/issues/833
Eu tentei tedious-connection-pool e módulo node-mssql, ambos estão gerando o mesmo erro.
@ aniltomar10 Você poderia enviar um
Também estou enfrentando exatamente o mesmo problema ao tentar me conectar a um banco de dados SQL Azure usando autenticação AAD. Meu serviço também se conecta a outro banco de dados SQL Azure que usa apenas autenticação SQL e essa conexão está funcionando perfeitamente bem. Apenas a autenticação AAD falha. Quando fiz alguma captura de fluxo de log, vejo que este erro é gerado todas as vezes antes que a tentativa de conexão expire:
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)
Este é o meu rastreamento de pilha de exceção que é registrado no app insights:
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)
Não tenho certeza se @ aniltomar10 também está enfrentando o mesmo problema ou não, mas achei que poderia ser relevante neste caso.
Quando executo o serviço localmente na minha máquina de desenvolvimento, tudo funciona bem. Ele começa a falhar quando implanto o serviço no serviço de aplicativo azure.
Detalhes do ambiente:
Versão NodeJS: 8.11.1
Versão tediosa: 4.1.1
Deixe-me saber se posso adicionar mais detalhes.
Obrigado,
Shahnaz.
Outra atualização:
Com base no erro, fiz uma bifurcação e fiz uma pequena alteração no arquivo connection.js para adicionar o evento ausente no estado de autenticação alimentado:
'routingChange' no estado 'SentLogin7Withfedauth'
e então as coisas parecem funcionar bem e meu serviço no azure app service env também é capaz de se conectar ao servidor e obter dados. Veja para referência:
https://github.com/shani117/tedious/commit/0777bf6f5ad7f1701a355f8e706fd0ce5120eda4
Ainda não estou pronto para fazer uma RP, mas só queria divulgar para ver se estou seguindo o caminho certo ou não.
Feedback apreciado.
@ shani117 Oh, uau, sim, acho que você encontrou a causa raiz desse problema! Vou ver se consigo abrir um PR com suas alterações amanhã para consertar isso corretamente. Muito obrigado! 🙇
: tada: Este problema foi resolvido na versão 4.1.2: tada:
O lançamento está disponível em:
Seu bot de lançamento semântico : package :: rocket:
Comentários muito úteis
Outra atualização:
Com base no erro, fiz uma bifurcação e fiz uma pequena alteração no arquivo connection.js para adicionar o evento ausente no estado de autenticação alimentado:
'routingChange' no estado 'SentLogin7Withfedauth'
e então as coisas parecem funcionar bem e meu serviço no azure app service env também é capaz de se conectar ao servidor e obter dados. Veja para referência:
https://github.com/shani117/tedious/commit/0777bf6f5ad7f1701a355f8e706fd0ce5120eda4
Ainda não estou pronto para fazer uma RP, mas só queria divulgar para ver se estou seguindo o caminho certo ou não.
Feedback apreciado.