2012-04-09 62 views
0

我有一個web服務作爲web角色在azure上託管。 在這個Web角色中,我重寫了Run()方法並按照以下順序執行一些數據庫操作,以充當工作者角色。什麼可能導致我的WebRole永遠不會啓動?

  1. 去blob存儲拉一小組數據。

  2. 緩存該數據以供將來使用。

  3. 殺死一些太舊的斑點。

  4. Thread.Sleep(900000); 
    

基本上操作在後臺每15分鐘重複。 當我在DevFabric上運行時運行正常,但部署時,天藍色的門戶卡在穩定角色的循環中,然後準備節點。

切勿實際啓動任一實例。 我啓用了診斷功能,但沒有向我顯示任何提示有問題的信息。 我不知道爲什麼會發生這種情況。

回答

0

當別人盡力幫助我時,我通常不喜歡回答自己的問題,但我覺得我用來解決此問題的方法應該記錄在案。

我在部署到Azure時啓用了intellitrace,並且我能夠看到所有拋出的異常並調查異常的原因。

智能感知對於解決我的部署問題至關重要。我會把它推薦給任何人看到部署devfabric和部署到azure之間的不一致。

1

聲音像一個錯誤正在OnStart中被拋出。你是否有任何方法可以對整個函數進行try/catch,並將錯誤轉儲到EventViewer中?從那裏您將能夠遠程訪問實例並調查錯誤

您部署到雲中的配置最有可能與在模擬器中運行的配置不同(SQL Azure防火牆權限,指向本地開發存儲的指針而不是ATS,等等)。另外,請確保您的診斷指向真正的Azure帳戶而不是本地Dev存儲。

1

我建議將此代碼移至Run()。在OnStart()中,您的角色實例對於負載平衡器尚不可見,並且由於您向OnStart()中引入了很長時間(可以無限延遲),這很可能就是爲什麼您會看到關於試圖穩定角色的消息(有關這些消息的更多信息,請參見here。)

+0

我在Run()中運行此代碼。 OnStart()是一個錯字。我很抱歉。 – BentOnCoding 2012-04-09 04:04:13

相關問題