我一直在尝试在Windows Azure模拟器中运行Node.js,但不幸的是它无法运行。当然,我从一开始就是Hello World应用程序,遵循this tutorial中的步骤。
我按照以下步骤使用4台不同的计算机,并且在所有情况下页面都没有显示任何内容。
在这里,我的应用程序是使用上面的代码创建的:
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);
现在我应该看到我的问候世界页面。问题是,如果有人在给定的教程中取得了成功吗?我做错了什么?
答案 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
我希望您可以通过此信息解决问题。