背景/问题
在 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”来禁用日志记录。