Azure上的Ghost(NodeJS博客):周期性500错误故障排除

时间:2014-07-26 15:19:06

标签: node.js iis azure ghost-blog

背景/问题

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

错误似乎发生在一段时间不活动之后。由于我目前正在设置,我正在使用Azure“免费”实例,所以我想知道某种资源保护是否会在幕后引起它(当我升级时会缓解这种情况)。

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

一些具体问题:

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

完整错误

错误的全文如下(因为这个原因我打开了调试):

  

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

     

HRESULT:0x2

     

HTTP状态:500

     

HTTP原因:内部服务器错误

     

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

     

除了node.exe进程的stdout和stderr日志之外,请考虑使用调试和ETW跟踪来进一步诊断问题。

     

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

1 个答案:

答案 0 :(得分:0)

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

How to debug Azure 500 internal server error

祝你好运!