我试图在Azure webapp上部署一个非常简单的express.js应用程序。
部署日志显示部署正确传递但应用程序无法启动。检查kudu进程资源管理器显示node.js进程确实没有运行
另一方面,我没有看到任何应用程序日志,也没有任何关于应用程序开始的迹象。
有没有办法查看nodeiis尝试启动应用时发生了什么?
答案 0 :(得分:2)
Azure WebApp for node.js正在通过iisnode作为本机IIS模块运行,该模块允许在Windows上的IIS中进行托管。请参阅文档https://blogs.msdn.microsoft.com/silverlining/2012/06/14/windows-azure-websites-node-js/以了解其功能。
为了调试node.js的webapp,我建议你可以参考document来了解如何操作。
如果您使用Visual Studio作为node.js的IDE,我建议在VS中安装NTVS以调试和部署node.js.请参阅以下文档以了解如何开始使用。
还有一个名为node-inspector
的工具用于检查Azure上的node.js应用程序。作为参考,您可以参考文档http://www.ranjithr.com/?p=98。
与此同时,请通过Kudo Console查看节点webapp中的web.config
文件,您可以将您的代码与Azure门户网站上的Express模板生成的示例进行比较。
希望有所帮助。如有任何疑虑,请随时告诉我。
答案 1 :(得分:1)
您需要先启用日志记录,然后才能获取可能(希望)为您提供有关错误的更多详细信息的日志。您可以阅读更多相关信息here。
答案 2 :(得分:1)
在此处发布我的调查步骤。
1.编辑D:\ home \ site \ wwwroot \ iisnode.yml,从https://xxx.scm.azurewebsites.net/DebugConsole添加以下行
devErrorsEnabled: true
HRESULT:0x2
HTTP状态:500
HTTP subStatus:1002
HTTP原因:内部服务器错误
答案 3 :(得分:1)
要运行Azure Framework节点,必须在根文件夹中有一个web.config文件,用于配置IIS以运行节点进程。
如果通过git部署,则不必担心创建web.config文件。 Azure框架将执行部署后的生成操作,
npm install
以确保存在必需的软件包。默认情况下,部署后构建操作将不会针对.zip部署运行。您可以通过以下两个选项中的 one 解决此问题:
web.config file
和node_modules
文件夹。 要覆盖默认行为并启用zip部署的构建操作,只需添加应用程序设置SCM_DO_BUILD_DURING_DEPLOYMENT,设置为true
如果要使用自己的web.config
文件启用节点,请参见this answer以获取示例web.config文件。另外,请参见此博客:https://blogs.msdn.microsoft.com/silverlining/2012/06/14/windows-azure-websites-node-js/,以了解更多详细信息。
答案 4 :(得分:0)
您无需从kudu explorer检查/管理您的webapp。
您可以参考文章https://azure.microsoft.com/en-us/documentation/articles/app-service-web-nodejs-get-started/,通过git将您的本地node.js置于azure。
您还可以通过FTP将代码移动到azure,这在webapp仪表板页面中显示。
之后在azure上启动node.js web应用程序,然后您就可以访问它了。
如果要查看代码的运行时日志,可以转到 azure portal webapp中的“yourwebapp ==> CONFIGURE ==>应用程序诊断”,用于配置日志。