【问题标题】:How to get standard out from a Node.js application in Azure?如何从 Azure 中的 Node.js 应用程序中获取标准?
【发布时间】:2014-08-16 06:55:35
【问题描述】:

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

根据http://azure.microsoft.com/en-us/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"
}

【问题讨论】:

    标签: node.js azure azure-web-app-service


    【解决方案1】:

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

    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。

    然后您可以尝试让更大的应用程序运行。

    【讨论】:

    • 您也可以尝试从 Azure 网站库(这是一个 node.js 应用程序)发布一个新的 Ghost 博客,然后使用那里生成的 web.config 作为您的模板。只是另一种方式让您掌握工作的 web.config 文件
    • 感谢您的 cmets!我的问题似乎是如果它不在根目录中,我无法让服务器运行。我部署了一个示例并且它可以工作,但是当我将 server.js 文件移动到 /NodeServer 文件夹时,我无法让它工作。在问题中查看我的编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 2020-06-27
    • 2019-09-22
    • 1970-01-01
    • 2020-04-25
    相关资源
    最近更新 更多