网站定期因HTTP 500错误而无法使用。到目前为止我从日志中找到的只有:
ModuleName iisnode
Notification EXECUTE_REQUEST_HANDLER
HttpStatus 500
HttpReason Internal Server Error
HttpSubStatus 1001
ErrorCode The system cannot find the file specified. (0x2)
请注意,此实例中的响应时间约为38秒。我怀疑这种情况发生是因为IISNode进程进入休眠状态,并且它在唤醒时它在长时间退出后第一次请求时失败。我创建了Azure WebJob,它每15分钟对网站进行一次ping操作,以保持网站活着,似乎解决了这个问题。我只是想知道是否有更好的解决方案。
答案 0 :(得分:1)
GitHub问题here解决了这个问题。问题是由于IIS懒惰地初始化节点进程的本质。如果初始化时间过长,则可能会丢弃请求。建议的解决方案是在web.config
或iisnode.yml
文件中增加maxNamedPipeConnectionRetry和namedPipeConnectionRetryDelay的一个或两个值。 GitHub的答案更详细地说明了为什么这些值是相关的。