无法连接到数据库 - EADDRNOTAVAIL

时间:2016-01-14 08:51:42

标签: node.js azure azure-sql-database azure-web-sites tedious

我有一个简单的node.js应用程序无法连接到SQL Db。

Web服务器是Azure Web App,运行node.js并使用Tedious进行SQL。 DB是Azure SQL数据库。

这是详细错误:

  

{     消息:'无法连接到xxx.database.windows.net:1433 - undefined',     代码:'ESOCKET'}

     

Thu Jan 14 2016 08:05:05 GMT + 0000(世界协调时间):未捕获异常:ConnectionError:连接丢失 - 连接 EADDRNOTAVAIL       在Connection。 (d:\家\网站\ API \ node_modules \繁琐\ LIB \ connection.js:797:26)       在Socket。 (d:\家\站点\ API \ node_modules \乏味\ lib中\ connection.js:33:15)       在Socket.emit(events.js:88:20)       在Array.1(net.js:301:14)       在EventEmitter._tickCallback(node.js:190:38)

它适用于我的机器,有趣的是它也适用于另一个Azure Web App!我尝试重新启动这个网络应用程序,什么不是......这个错误是什么意思?

1 个答案:

答案 0 :(得分:2)

我试图重现这个问题,但失败了。所以我搜索了一些像EADDRNOTAVAIL这样的关键字,用于NodeJS&单调乏味,然后我找到了页面https://github.com/nodejs/node-v0.x-archive/issues/6833

这让我觉得这个问题可能是在某些指定的版本节点上引起的。您可以在网址https://<the_bad_webapp_name>.scm.azurewebsites.net/Env找到错误WebApp的节点版本,并与精细版本进行比较。

  

您可以在Node WebApp的网址https://<node webapp name>.scm.azurewebsites.net/api/diagnostics/runtime上看到Azure支持的alll node版本。

如果他们的节点版本不同,您可以尝试为糟糕的webapp指定Tedious的节点版本,但请参阅文档https://azure.microsoft.com/en-us/documentation/articles/nodejs-specify-node-version-azure-apps/以了解如何操作。

希望它有所帮助。