2014-03-05 89 views
3

我有一個可運行的Windows Azure網站運行我的node.js應用程序,並且一切正常。我最終需要運行本地node.js模塊(光纖),這就需要我轉移到Windows Azure雲服務。我使用了轉換爲Azure雲服務嚮導,該向導創建了一個Web角色,允許我將我的應用程序部署爲雲服務,並在節點下運行光纖。到現在爲止還挺好。如何更新Windows Azure雲服務映像上的iisnode版本

我的應用程序需要在Azure網站下受支持的WebSockets(當您從config UX打開它時,或多或少會自動進行)。我一直在爭取讓WebSockets與Cloud Service一起工作幾天,並且我確定我的問題是缺省情況下在Cloud Service中運行的iisnode版本太老,不能支持node.js WebSockets正常的方式。 Cloud Service安裝了iisnode 1.21版本,並且iisnode中的WebSockets支持直到2.0版本纔出現(我不知道爲什麼Cloud Service映像使用舊版本的iisnode)。

請注意,我不想使用輔助角色,並在不同的端口上偵聽(我收集的是很多人如何解決這個問題)。我不知道如何在我的Cloud Service中安裝更新的iisnode版本(我收集到可以在Cloud Service啓動時運行安裝程序(可能通過setup_web.cmd),但是這是據我已經得到了。

任何指針什麼,我需要做的就是我的Azure的雲服務運行iisnode的新版本?

+0

這個問題實際上有兩個部分。 iisnode版本需要在「模擬器」(當您在本地運行時)以及在真正的Cloud Service映像中進行更新。這兩件事情完全不同。幸運的是,仿真器更新結果令人尷尬直截了當。你所需要做的就是在你的本地機器上安裝最新的預置iisnode-dev。目前是: https://github.com/downloads/WindowsAzure/iisnode/iisnode-dev-v0.2.2.msi 現在,如果我只想弄清楚如何更新我的Cloud Service映像... – BobDickinson

回答

4

要更新安裝在Azure中iisnode的版本託管服務你需要:

  1. 下載n ewest x64安裝程序,用於iisnode,從http://go.microsoft.com/?linkid=9784331
  2. 在要部署到託管服務的程序包中包含* .msi文件。
  3. 在您的setup_web.cmd中,使用msiexec /i iisnode-full-iis7-v0.2.7-x64.msi /passive安裝新的iisnode。這必須以admin身份運行,但是我相信setup_web.cmd已經以admin身份運行。

替代方案,對於一次性安裝,您可以將TS安裝到機器上並手動安裝。

順便說一句,什麼阻止您在Windows Azure網站中使用本地模塊?

+0

WRT Azure網站上的本地模塊,我嘗試在添加光纖(我的node_modules中預先創建了Windows二進制文件)後部署我的網站 - 這是一種在本地運行良好的解決方案。在Azure網站上,代碼在任何調用光纖時都會掛起(我預料它會更早,更明顯地失敗)。然後我發現了本機模塊支持的討論:http://www.windowsazure.com/en-us/documentation/articles/nodejs-use-node-modules-windows-azure-apps/,它非常明確地表示本機代碼在Azure網站上不支持節點模塊。 – BobDickinson

+0

我能夠使用上述指令(作爲n00b,甚至像2的簡單指令)更新iisnode稍微嘗試和錯誤)。現在我的網站報告: ** iisnode模塊無法啓動node.exe進程。確保node.exe可執行文件在web.config的system.webServer/iisnode/@nodeProcessCommandLine元素中指定的位置可用。默認情況下,在PATH環境變量中列出的目錄之一中需要node.exe。** 我之前沒有指定節點路徑,並且可以從命令shell運行節點而沒有問題。 – BobDickinson

+0

FWIW,默認情況下,Windows Azure雲服務運行32位版本的節點 - 來自\ Program Files(x86)\ nodejs \ - 並且平臺上沒有安裝64位版本的節點。 – BobDickinson