0

背景/问题

在 Azure 上运行Ghost博客时遇到一个奇怪的问题。该站点似乎在一段时间内运行良好,但每隔一段时间,我会收到一个 500 错误,没有更多信息。下一个请求似乎总是成功(到目前为止的测试中)。

该错误似乎是在一段时间不活动后发生的。由于我目前刚刚开始设置,我正在使用 Azure“免费”实例,所以我想知道是否某种资源节约在幕后导致它(升级时会缓解)。

知道什么可能导致这个问题吗?我有点不知从何开始,因为在这种情况下日志不一定对我有帮助。我是 NodeJS(以及 Azure 上的 nodeJS)的新手,因为这是我的第一次尝试,所以关于在哪里查找的任何提示/技巧也会有所帮助。

一些具体问题:

  • 当收到这样的错误时,我可以去任何地方查看任何输出,还是几乎可以保证 Node 实际上没有输出任何东西?
  • 在 Azure 免费实例上,是否会发生某种资源节约,这可能会导致应用程序关闭(因此我只有在一段时间不活动后才能看到这些错误)?

完整的错误

错误的全文如下(为此我打开了调试):

iisnode 在处理请求时遇到错误。

结果:0x2

HTTP状态:500

HTTP 原因:内部服务器错误

您收到此 HTTP 200 响应是因为 system.webServer/iisnode/@devErrorsEnabled 配置设置为“true”。

除了node.exe进程的stdout和stderr的日志,考虑使用debugging和ETW traces来进一步诊断问题。

node.exe 进程尚未将任何信息写入 stderr 或 iisnode 无法捕获此信息。常见的原因是 iisnode 模块无法创建日志文件来捕获来自 node.exe 的 stdout 和 stderr 输出。请检查运行node.js应用程序的IIS应用程序池的身份是否对node.js应用程序所在服务器上的目录有读写访问权限。或者,您可以通过将 web.config 的 system.webServer/iisnode/@loggingEnabled 元素设置为“false”来禁用日志记录。

4

1 回答 1

0

我认为这可能是 Azure Web 配置中的内容,而不是 Ghost 本身。因此,基于此查找日志,因为 Ghost 没有抛出该错误。我发现这个问题可能会帮助你:

如何调试 Azure 500 内部服务器错误

祝你好运!

于 2014-07-27T15:27:42.737 回答