2012-02-10 62 views
3

我正在使用適用於Node.js的Windows Azure SDK並遇到極其奇怪的障礙。Azure模擬器在使用Node.js + Socket.io時不會啓動

我可以在本地使用Windows Azure模擬器測試Azure Node.js應用,,直到我安裝了Socket.io。然後拒絕模擬器開始,吐出:

Creating local package... 
Starting Emulator... 
Start-AzureEmulator : An unexpected failure occurred. Details: 
The compute emulator had a error: Can't locate service model.. 
At line:1 char:20 
+ Start-AzureEmulator <<<< -Launch 
    + CategoryInfo   : CloseError: (:) [Start-AzureEmulator], InvalidOperationException 
    + FullyQualifiedErrorId : AzureDeploymentCmdlets.Cmdlet.StartAzureEmulatorCommand 

奇怪的事情是,我可以部署相同的代碼/項目天青,並運行良好。只有模擬器拒絕工作。

奇怪的是,我無法在不同的計算機上覆制它。這似乎只是我的主要工作箱上的一個問題。我試過npm cache clear以獲得全新的Socket.io安裝。我卸載並重新安裝了Azure SDK,Azure模擬器和Azure Node.js工具。沒有什麼解決了這個問題。

任何想法?只有在10-15分鐘部署到雲後才能進行測試,這讓人非常沮喪。

UPDATE:
我要澄清的是這種情況只與工人的角色(沒有Web角色)發生。

回答

0

此問題似乎已經在2012年8月發佈的Windows Azure SDK for Node.js(版本:0.6.2)中得到修復。這可以通過Web Platform Installer 4.0進行安裝。

1

您是否在Web角色中使用Express框架?我遇到了一個權限問題(這可能是另一個症狀),在模擬器中的web角色中使用帶有node.js的Express框架的基本示例。

這是由包裝錯誤引起的。解決方法是從Web角色中刪除server.js.logs目錄。然後,您可以使用loggingEnabled參數關閉IISNode日誌記錄。

+0

這可能適用於Web角色和Express,但不適用於工作者角色和socket.io,這正是我嘗試在Azure模擬器中運行的角色。 – redhotvengeance 2012-02-17 23:28:05

0

我們在即將進行的下一次SDK更新中修復了這一問題。

+0

所以我並不在意。很高興知道。現在會不會有任何解決方法? – redhotvengeance 2012-02-15 00:34:12

+0

嘿,格倫,我剛剛抓住了最新版本的工具(從上週的Azure更新),我仍然遇到同樣的問題。創建一個新項目:'New-AzureServiceProject test','Add-AzureNodeWorkerRole',導航到WorkerRole1,'npm install socket.io','Start-AzureEmulator -Launch',並且它從問題中吐出同樣的錯誤。你知道是否有任何計劃的解決方案嗎? – redhotvengeance 2012-06-14 00:18:11

+0

嘗試按照位圖建議的方式將您的應用程序文件夾移動到較短的路徑。爲我工作。 – spxl 2014-08-11 15:34:49

-2

「現在會不會有任何解決方法?」

我意識到我在StackOverflow上的信譽最低,但是我之前的帖子確實包含了「解決方法」一詞。 (並感謝Glenn和他的團隊讓我到另一個論壇上。)

+0

對不起,但沒有。我甚至沒有使用網絡角色 - 我只使用一個工作者角色,因爲IIS 7對網絡套接字不起作用。所以我沒有Web.config文件,也沒有server.js.logs。所以你的解決方法對我來說不起作用,因此我沒有把它標記爲答案。 你發佈的這個二級答案根本就不是答案。答案不應被用作評論或投訴。 – redhotvengeance 2012-02-17 23:26:20

3

在預感上(因爲我認爲在過去的其他地方可能有類似的錯誤),我縮短了項目目錄的名稱解決了這個問題。

我有一種感覺,它可能與文件系統中項目文件的路徑長度有關。我知道TFS有類似的問題。我通常會嘗試將我的所有項目保留在C:\ Dev中,並且沒有太多嵌套目錄或長項目名稱。

看到這個錯誤可能還有其他原因,但是這解決了我的情況。

+0

我一直在關注cloud-services-nodejs-chat-app-socketio Azure教程,如果遇到這個問題並且轉移到較短的目錄路徑中,也適用於我。我的原始路徑沒有空格,並且大約有25個字符(包括\分隔符)。像這樣的錯誤不應該發生......誰負責這個? :) – spxl 2014-08-11 15:31:28

+0

我自從發現這是Windows的限制,請參閱http://stackoverflow.com/questions/1880321/why-does-the-260-character-path-length-limit-exist-in-windows – bitsprint 2015-04-30 15:56:14