6

我正在尝试在 Azure webapp 上部署一个非常简单的 express.js 应用程序。

部署日志显示部署正确通过但应用程序未启动。检查 kudu 进程资源管理器显示确实 node.js 进程没有运行

在此处输入图像描述

另一方面,我没有看到任何应用程序日志,也没有任何迹象表明该应用程序甚至已启动。

有没有办法查看 nodeiis 尝试启动应用程序时发生了什么?

4

5 回答 5

4

用于 node.js 的 Azure WebApp 通过iisnode作为本机 IIS 模块运行,允许在 Windows 上的 IIS 中进行托管。请参阅文档https://blogs.msdn.microsoft.com/silverlining/2012/06/14/windows-azure-websites-node-js/了解其功能。

对于node.js的webapp调试,我建议你可以参考文档来了解如何去做。

如果您使用 Visual Studio 作为 node.js 的 IDE,我建议在 VS 中安装NTVS以调试和部署 node.js。请参阅以下文档以了解如何开始。

  1. NTVS 的安装
  2. 安装 Node.js 并开始使用 NTVS

还有一个node-inspector用于检查 Azure 上的 node.js 应用程序的工具。作为参考,您可以参考文档http://www.ranjithr.com/?p=98

同时,请web.config通过 Kudo 控制台检查您的节点 webapp 中的文件,您可以将您的代码与 Azure 门户上的 Gallery 中的 Express 模板生成的示例进行比较。

希望它有所帮助。任何问题,请随时告诉我。


进程资源管理器显示了我的 webapp for node.js 的进程。 在此处输入图像描述

于 2016-05-09T10:21:59.820 回答
1

您需要启用日志记录,然后才能获得(希望)为您提供有关错误的更多详细信息的日志。你可以在这里阅读更多关于它的信息。

于 2016-05-09T15:31:41.573 回答
1

在这里发布我的调查步骤。
1. 编辑 D:\home\site\wwwroot\iisnode.yml,从https://xxx.scm.azurewebsites.net/DebugConsole 添加以下行

devErrorsEnabled: true  
  1. 从 Azure 门户重新启动应用服务
  2. 访问您的服务,您将看到如下内容:

HRESULT:0x2
HTTP 状态:500
HTTP 子状态:1002
HTTP 原因:内部服务器错误

  1. 转到https://docs.microsoft.com/en-us/azure/app-service/app-service-web-nodejs-best-practices-and-troubleshoot-guide#iisnode-http-status-and-substatus到找到子状态的含义。

有关更多调试技巧,您可以查看:https ://prmadi.com/debug-nodejs-app-in-azure-app-services-windows-2/

于 2017-11-20T08:31:47.380 回答
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 门户 webapp 中的“yourwebapp ==> CONFIGURE ==> Application Diagnostics”来配置日志。

于 2016-05-09T07:15:35.230 回答
0

要让 Azure 框架运行节点,根文件夹中必须有一个 web.config 文件配置 IIS 以运行节点进程。

如果通过 git 部署,则不必担心创建 web.config 文件。Azure 框架将执行部署后构建操作,这将

  • 将您的代码识别为节点应用程序并为您创建一个 web.config 文件。
  • 运行npm install以确保存在所需的包。

默认情况下,不会为 .zip 部署运行部署后构建操作。您可以通过以下两个选项之一解决此问题:

  • 覆盖默认设置,以便构建操作运行
  • 在 zip 文件中包含web.config file和文件夹。node_modules

要覆盖默认行为并启用 zip 部署的构建操作,只需添加应用程序设置SCM_DO_BUILD_DURING_DEPLOYMENT,设置为true

如果您想使用自己的web.config文件启用节点,请参阅此答案以获取示例 web.config 文件。此外,请参阅此博客:https ://blogs.msdn.microsoft.com/silverlining/2012/06/14/windows-azure-websites-node-js/了解更多详细信息。

于 2018-07-09T01:37:58.023 回答