【问题标题】:Why is Azure giving me random 500 errors?为什么 Azure 给我随机 500 错误?
【发布时间】:2017-07-20 20:59:27
【问题描述】:

我构建了一个 Node.js Web 应用程序并将其部署为 Azure Web 应用程序。 Web 应用程序基本上从 Azure 存储帐户获取数据并将其显示给客户端。很简单。

有时数据可能需要一段时间才能返回到客户端。所以我使用 Promise 来处理这个问题的异步性质。

在开发服务器上,没有问题。数据总是返回给客户端。 (在 Internet Explorer、Chrome 和 Firefox 上测试)

但是,在 Azure Web 应用中,有时数据会返回客户端,有时请求会失败(总是在 5 秒后),客户端会在浏览器的开发人员工具中看到 500(内部服务器)错误.

现在,即使客户端收到 500 错误,Azure 日志流也没有显示任何问题,并且服务器继续工作,就像从未发生过问题一样。

此 Web 应用程序采用使用共享资源的免费层级服务计划构建。这是问题还是有人在 Azure 中遇到过这个问题?

【问题讨论】:

  • 免费套餐在 20 分钟不活动后回收应用程序池。这与您看到的问题一致吗?
  • @DavidMakogon 这将是用户连接到站点后的 20 分钟?如果是这样,那么这应该不是问题。这些请求需要 60-80 秒才能发回响应。

标签: node.js azure azure-web-app-service


【解决方案1】:

对于 500 错误,您需要启用 stdout 和 stderr 的日志记录以进行故障排除并查看日志内容。要启用调试,您可以修改 web.config 或在 Node.js 应用程序的根目录创建/修改 iisnode.yml 文件。

web.config中,是这样的:

<iisnode loggingEnabled="true" logDirectory="iisnode" />

或者在iisnode.yml,看起来像这样:

loggingEnabled: true
logDirectory: iisnode

现在,您可以前往查看日志 https://{yoursitename}.scm.azurewebsites.net/api/vfs/site/wwwroot/iisnode/index.html 在浏览器中。

您还可以查看有关在 Azure Web App 中调试 Node.js 的说明: How to debug a Node.js web app in Azure App Service.

【讨论】:

  • 在我的日志中,我可以看到 POST 请求发出,但仅此而已,我没有看到任何与 500 错误有关的内容。唯一的事情就是将会话 cookie 用作身份验证。
【解决方案2】:

在微软论坛上问了同样的问题:

https://social.msdn.microsoft.com/Forums/en-US/a89e8cec-15d6-4a3b-b54d-17f6092ead77/webhcat-post-request-from-web-app-cause-500-error?forum=windowsazurewebsitespreview

原来这是 Azure 的问题,而不是我的代码。我的网站现在可以正常工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 2019-06-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多