繁体   English   中英

如何从Azure中的Node.js应用程序获取标准?

[英]How to get standard out from a Node.js application in Azure?

我们有一个具有很大代码库的Node.js应用程序,我们正尝试将其部署到Azure网站。 我的问题是,当我部署应用程序并尝试访问它时,我仅收到一条消息,内容为“由于发生内部服务器错误而无法显示该页面”。

根据http://azure.microsoft.com/zh-CN/documentation/articles/web-sites-nodejs-debug/的说明,我应该能够配置一些设置并将我的标准记录到文件中-嗯,这是不工作。 在/ LogFiles中,我可以看到/ git,/ html和/ DetailedErrors,但是这些文件夹都不包含标准输出日志。

我已经使用Visual Studio部署了该应用程序。 我创建了一个空白的Azure项目,并手动添加了所需的所有文件夹和文件。 我还创建了一个iisnode.yml文件,其中包含以下配置:

loggingEnabled: true
devErrorsEnabled: true
logDirectory: ./logs
debugHeaderEnabled: true

我稍后添加的最后两行,前几行来自本教程。 我也有一个web.config文件,其内容尚未真正涉及。

我试图配置网站UI中可用的设置,但实际上并没有取得任何进展。 我认为目前它们几乎是默认值。

很抱歉无法为您提供更多信息。 我真的很想在这里撞墙,因为我发现的所有教程基本上都指出,如果我这样做,那一切都会正常进行。 问题是,事实并非如此。 悲伤的脸。

编辑:我可能应该添加我的server.js在一个名为/ NodeServer的文件夹中。 它似乎不是Azure所假定的根源。

Edit2:我部署了一个Hello World示例并使它工作,但是当我尝试从根目录移动server.js文件时,我再也无法使其工作了。

我在web.config中添加了一个标签,因此结构基本上是

configuration
  location path="NodeServer"
   system.webServer

我还编辑了package.json,使其显示为

"main":"NodeServer/server.js",
"scripts":{
   "start":"cd NodeServer && node server.js"
}

如果应用程序成功启动,您应该可以在以下位置找到标准输出

D:\home\LogFiles\Application

在Azure网站中,无需进行任何配置。

但是在这里,它看起来像是与web.config错误/丢失有关的错误。 节点应用可能无法启动。 你可以试试:

  1. 使用git将应用程序发布到Azure网站。
  2. 或者,如果您熟悉IIS和iisnode,请确保您的应用程序在IIS和iisnode上本地运行。 参见http://tomasz.janczuk.org/2011/08/hosting-nodejs-applications-in-iis-on.html
  3. 或尝试将“ hello world” node.js应用程序发布到Azure网站,获取生成的web.config并为您的应用程序对其进行修改。

编辑:当您更改server.js的位置时,您也必须更改web.config。 web.config中的更改不正确。 而package.json仅用作在git部署期间生成web.config的提示。 要使“ hello world”发挥作用,您可以选择

  1. 在您的web.config中,将所有“ server.js”替换为“ NodeServer / server.js”。
  2. 或使用git部署修改后的应用程序。 确保它不包含错误的web.config。

然后,您可以尝试使用更大的应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM