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

时间:2014-08-14 12:44:07

标签: node.js azure azure-web-sites

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

根据http://azure.microsoft.com/en-us/documentation/articles/web-sites-nodejs-debug/我应该能够配置一些设置并将我的标准记录到文件中 - 好吧,它不能正常工作。 in / LogFiles我可以看到/ git,/ html和/ DetailedErrors,但这些文件夹都不包含stdout日志。

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

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

我后面添加的最后两行,第一行来自教程。我还有一个web.config文件,其内容我还没有真正触及过。

我试图配置网站用户界面中可用的设置,但我还没有取得任何进展。我认为目前它们几乎都是默认的。

抱歉,我无法向您提供更多信息。我真的很喜欢在这里撞墙,因为我发现的所有教程基本上都说如果我这样做,那么一切都应该有效。问题是,它没有。悲伤的脸。

编辑:我应该添加我的server.js在名为/ NodeServer的文件夹中。它似乎不像Azure那样存在于root中。

Edit2:我部署了一个Hello World示例并让它工作,但是当我尝试从root用户移动server.js文件时,我无法让它继续工作。

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

configuration
  location path="NodeServer"
   system.webServer

我还编辑了我的package.json,以便说明

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

1 个答案:

答案 0 :(得分:0)

如果应用程序成功启动,您应该能够在

找到标准输出
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并为您的应用程序修改它。
  4. 编辑:当您更改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。
    3. 然后,您可以尝试让更大的应用运行。