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

我一直在尝试在Windows Azure模拟器中运行Node.js,但不幸的是它不工作。 当然,我从一开始就开始使用Hello World应用程序,按照本教程中的步骤操作。

我用4台不同的电脑按照下面的步骤操作,在任何情况下页面都不显示任何内容。

  • 我以pipe理员身份打开Windows PowerShell环境。
  • 我创build了节点目录
  • 我input了命令:PS C:\ node> New-AzureService任务列表
  • 我input了命令:PS C:\ node \ tasklist> Add-AzureNodeWebRole

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

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); 
  • 最后,我input了命令:PS C:\ node \ tasklist \ WebRole1> Start-AzureEmulator -launch

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

我有你的完全相同的错误,并在互联网上寻找很长一段时间,我发现这个职位 。

只是总结一下,问题是Azure的Node包内有一个脚本,试图将“Network Service”的权限授予Web根目录。 但是我的系统语言是IT,所以我没有一个叫“networking服务”的用户。

所以你需要编辑脚本。 如果您的应用程序path是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 

这对我有用!

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

节点server.js

并将浏览器指向http:// localhost:1337 。 这使Windows Azure模拟器不在图片中,并可能指出是否还有其他事情正在进行。

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

我希望你能通过这个信息解决问题。