我构建了一个Node.js Web应用程序并将其部署为Azure Web应用程序。 Web应用程序基本上从Azure存储帐户获取数据并将其显示给客户端。非常简单。
有时,数据可能需要一段时间才能返回客户端。所以我使用promises来处理这个问题的异步性。
在开发服务器上,没有问题。数据总是返回给客户端。 (在Internet Explorer,Chrome和Firefox上测试)
但是,在Azure Web应用程序中,有时数据会将其返回给客户端,有时请求会失败(总是在5秒后),客户端可能会在浏览器的开发人员工具中看到500(内部服务器)错误
现在,即使客户端收到500错误,azure日志流也没有显示任何问题,服务器继续工作,就像从未发生过问题一样。
此Web应用程序使用免费的层服务计划构建,该计划使用共享资源。这是问题还是有人在Azure中遇到过这个问题的经验?
答案 0 :(得分:0)
对于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
答案 1 :(得分:0)
在微软论坛上提出同样的问题:
原来这是Azure的一个问题,而不是我的代码。我的网站现在正在运作。