在Windows Azure模拟器中运行的Node.js Web应用程序

时间:2012-02-18 13:03:51

标签: node.js azure

我一直在尝试在Windows Azure模拟器中运行Node.js,但不幸的是它无法运行。当然,我从一开始就是Hello World应用程序,遵循this tutorial中的步骤。

我按照以下步骤使用4台不同的计算机,并且在所有情况下页面都没有显示任何内容。

  • 我以管理员身份打开了Windows PowerShell环境。
  • 我创建了节点目录
  • 我输入了命令:PS C:\ node>新AzureService任务列表
  • 我输入了命令:PS C:\ node \ tasklist>添加-AzureNodeWebRole

在这里,我的应用程序是使用上面的代码创建的:

var http = require('http');
var port = process.env.port || 1337;
http.createServer(function (req, res) {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello World\n');
}).listen(port);
  • 最后,我输入了命令:PS C:\ node \ tasklist \ WebRole1> Start-AzureEmulator -launch

现在我应该看到我的问候世界页面。问题是,如果有人在给定的教程中取得了成功吗?我做错了什么?

3 个答案:

答案 0 :(得分:4)

我有完全相同的错误,并且在互联网上找了很长时间我发现this post

总结一下,问题是Azure的Node包中有一个脚本试图将“网络服务”的权限授予Web根目录。 但是我的系统语言是it-IT,所以我没有一个名为“网络服务”的用户。

所以你需要编辑脚本。如果您的应用程序路径是C:\ node \ tasklist,则脚本位于

C:\node\tasklist\local_package.csx\roles\WebRole1\approot\bin\setup_web.cmd

只需更改此行:

icacls ..\ /grant "Network Service":(OI)(CI)W

用这个:

icacls ..\ /grant "NetworkService":(OI)(CI)W

这对我有用!

答案 1 :(得分:1)

您可以尝试使用以下命令直接在节点中运行示例:

node server.js

并将浏览器指向http://localhost:1337。这会使Windows Azure模拟器脱离图片,并可能指示是否还有其他事情发生。

答案 2 :(得分:0)

我认为你的案子与下面的文章类似。 http://blogs.msdn.com/b/avkashchauhan/archive/2012/01/31/handling-two-known-issues-with-windows-azure-node-js-sdk-0-5-2.aspx

我希望您可以通过此信息解决问题。