2015-07-01 22 views
0

我有一個針對Azure雲服務的node.js web角色項目。在普通node.exe中運行node.js項目工作正常。試圖在模擬器上運行它不起作用。Azure node.js webrole不會在模擬器中啓動

引用node.js項目的Azure Cloud Service項目構建和打包得很好,但VM(和Azure計算模擬器)在啓動後幾乎立即關閉。我甚至無法打開Azure模擬器UI來查看發生了什麼。

我正在使用完整的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

任何幫助表示讚賞。

+0

你在角色上啓用了RDP,並試圖尋找服務器上的事件日誌? –

+0

沒有足夠的時間來做到這一點。實例在產卵後幾乎立即關閉。 – Stav

+0

啊哈。在下面試試我的答案。希望能幫助到你。我一直呆在那裏。 –

回答

0

我建議你嘗試遠程調試。您仍然存在一些競爭狀況,因爲您必須提供服務才能通過遠程調試場景來連接它。在啓動任何服務之前(或許在listen聲明之前),您應該能夠在節點文件中放置一個等待語句。 這裏有一個等待功能,你可以使用...

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