Azure node.js webrole不会在模拟器中启动

时间:2015-07-01 11:41:39

标签: node.js visual-studio azure iis azure-web-roles

我有一个针对Azure云服务的node.js网络角色项目。在plain node.exe中运行node.js项目可以正常工作。尝试在模拟器上运行它然后不起作用。

引用node.js项目的Azure Cloud Service项目构建和打包很好,但VM(和azure计算模拟器)在启动后几乎无法关闭。我甚至无法打开天蓝色的模拟器用户界面来查看由于此而发生的事情。

我正在使用完整的IIS 7.5并从GitHub安装了iisnode 0.2.18。在Win7 x64下使用VS 2013 Ultimate和Azure SDK 2.6。

项目配置为使用完整的IIS。我应该提一下,在我看来项目bin目录下的setup_web.cmd批处理文件是无关紧要的。检查其输出日志显示它正在查找不存在的内容,例如APPCMD宏中的配置文件和文件夹名iisnode-dev(iisnode自身安装在C:\Program Files\iisnode中)。但是,使用setup_web.cmdChangeConfig.ps1调整没有帮助(至少不是我的调整......)

我的计算机上的Windows Azure事件日志中没有错误。只有关于正在初始化的角色和正在运行的脚本的信息消息在那里没有帮助。

我知道iisnode安装正确,因为我设置了捆绑的样本,它们都可以在localhost之后正常工作。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我建议你尝试远程调试。您仍然有一些竞争条件,因为您必须提供服务才能使用远程调试方案连接到它。在启动任何服务之前(可能在listen语句之前),您应该能够在节点文件中放置一个wait语句。 这是你可以使用的等待功能......

wait(30);
...
function wait(seconds) {
    var start = new Date().getTime();
    var delay = seconds * 1000;
    while (new Date().getTime() < start + delay);
}