0

我正在尝试使用 0.11.x 版本的节点在 Azure 上运行节点应用程序,这样我就可以利用一些新功能(例如生成器和 Koa)。

我已阅读此问题并尝试按照步骤操作,但到目前为止没有成功:

在 Azure 网站上设置节点 v0.11.x 时出错

以下是我执行的步骤:

  1. 在VS2013(update3)中,File => New Project 选择“Blank Microsoft Azure Node.js Web Application”(在Templates/Javascript/node.js下),点击OK

  2. 在 server.js 中,更改最后一行“hello world”以显示节点版本:

    res.end('App running in node version ' + process.version + '\n');

  3. 在与 server.js 相同的文件夹中添加一个新文件“iisnode.yml”,其内容为:

    nodeProcessCommandLine: D:\home\site\wwwroot\bin\node.exe

  4. 将node.exe(版本0.11.13)复制到“bin”文件夹(server.js所在文件夹下)

  5. 右键单击VS中的项目,选择发布,使用所有默认凭据/等创建新网站...然后单击发布

此时,“myproj.azurewebsites.net”页面出现了响应:

App running in node version v0.10.29

但我希望节点版本为 0.11.13。如果我去我的 \bin 文件夹并运行node.exe --version它会吐出:

v0.11.13

在本地运行(F5)似乎做正确的事: App running in node version v0.11.13

我很困惑如何让节点 0.11 在 Azure 网站上运行,有什么建议吗?

4

2 回答 2

0

以下对我有用:我在 d:\home\site\wwwroot 中有 node.exe,在我的 web.config 中有以下内容:

<configuration>
   <system.webServer>
     <handlers>
       <add name="iisnode" path="server.js" verb="*" modules="iisnode" />
     </handlers>
     <iisnode nodeProcessCommandLine="d:\home \site\wwwroot\node.exe" />
   </system.webServer>
</configuration>

于 2014-08-22T00:06:53.843 回答
0

好吧,我找到了解决该问题的方法,希望这可以节省其他人一些时间。

看起来问题在于 IISNODE.YML 文件需要进行 ANSI 编码。当我从 Visual Studio 2013 创建文件时,它选择 UTF8 作为文件的默认编码。

要更正此问题,请使用 ANSI 编码保存文件。例如,您可以通过在记事本中打开文件,然后执行另存为...并选择编码为 ANSI 来执行此操作。

我简要查看了“iisnode”的源代码,看来问题出在以下代码中:

CModuleConfiguration::ApplyYamlConfigOverrides

虽然我还没有时间测试它。

于 2014-08-25T13:48:51.773 回答