我刚刚在Node.js中部署了一个Web应用程序到Azure,它似乎无法连接到同一区域的Azure SQL Server。
我检查了以下内容:
node app.js
)开箱即用该应用使用Sails.js和sails-mssql
适配器。
编辑:我还尝试使用连接到数据库的虚拟应用程序,并在成功的行检索(Table.findOne().then()
)后返回响应。它第一次起作用(尽管有30秒的延迟)。之后,加载页面时只是超时,或者是错误502.
编辑2:似乎sails-sqlserver
是罪魁祸首,它捆绑了一个已知与Azure SQL v12不兼容的mssql
版本(请参阅here)。我强制通过npm-shrinkwrap
更新到mssql
2.3.1,但它仍无效。
我还可以检查哪些问题?我没有想法。
答案 0 :(得分:2)
您是否尝试通过SQL Management Studio进行连接?只是为了排除任何奇怪的联系。你能创建一个表等吗? 如果您没有管理工作室,可以通过Visual Studio连接。
这是VM还是SQL DB? VM ...你打开了端点吗? SQL DB ..您可以通过管理门户创建表吗?
我从未使用过帆,但这里是使用msnodesql并查看它是否连接的示例。可能只是帆的问题
https://azure.microsoft.com/en-us/documentation/articles/sql-database-develop-nodejs-simple-windows/
答案 1 :(得分:1)
通常,它可能会发生502错误,因为node.js进程崩溃并且前端留下请求并返回502.
您可以在本地运行应用程序并监控sails进程的日志,以检查崩溃进程的原因。
此外,如果它只出现在Azure上,您可以利用站点的Kudu控制台上的日志流工具来监视站点的日志。该工具的URL应如下所示:
https://<your_site_name>.scm.azurewebsites.net/api/logstream