【问题标题】:Azure NodeJS App Not WorkingAzure NodeJS 应用程序不工作
【发布时间】:2017-11-17 23:42:11
【问题描述】:

我在 Azure 上有一个 NodeJS 应用程序。它适用于基本 URL (http://membershipwebapp.azurewebsites.net),我得到了预期的结果。问题是当我尝试运行数据库查询时,例如http://membershipwebapp.azurewebsites.net/counties。当我运行它时,我得到“页面无法显示,因为发生了内部服务器错误。”

我已经转到我的输出控制台,只看到一个弃用警告。

我能够连接到 SSMS 中的数据库。当我在本地运行我的应用程序并转到 http://localhost:1337 时,我得到“localhost 拒绝连接”。

这里是我的应用程序中的配置:

    var config = {
            server: 'servername.database.windows.net',
            database: 'myDatabase',
            user: 'user',
            password: 'password',
            port: 1433
        };

var sql = require("mssql");
var connection = new sql.Connection(config);

【问题讨论】:

  • 您的数据库在那里并且可用吗?您使用正确的连接字符串吗?当您在 Azure 中以数据库为目标时在本地运行应用程序会发生什么?
  • 我可以从 SSMS 连接到数据库。
  • 可以连接到数据库这一事实并不意味着它可用于 Azure 中的应用程序;) 数据库在哪里? Web App 是否有权访问数据库?您是否在应用程序中使用了正确的连接字符串?当您在 Azure 中以数据库为目标时在本地运行应用程序会发生什么?
  • 在我的 Azure 门户中 Web 应用程序的连接字符串下,它包含我的 Azure 数据库的信息。
  • 当我在本地对 Azure 数据库运行它时,我得到“localhost 拒绝连接”。

标签: node.js azure


【解决方案1】:

对于内部服务器错误,您可能需要为 Azure 应用服务上的 Node.js 应用启用 sdtoutsterr 日志以查看日志内容。具体怎么做可以参考How to enable BLOB-logging for a Node.js Api App on Azure?

要使用mssql moudle 连接Azure SQL 数据库,我们需要在选项中添加encrypt: true

var config = {
    server: 'servername.database.windows.net',
    database: 'myDatabase',
    user: 'user',
    password: 'password',
    port: 1433,

    options: {
        encrypt: true // Use this if you're on Windows Azure
    }
}

另外请注意,如果您从本地计算机访问 Azure SQL 数据库,则需要通过 Azure portal 将计算机的 IP 地址添加到允许的 IP 列表中,如下所示。

【讨论】:

    猜你喜欢
    • 2014-07-17
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 2014-11-02
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多