匯出 (0) 列印
全部展開

造成角色回收的常見問題

更新日期: 2014年1月

本節列出發生部署問題的一些常見原因,並提供疑難排解提示以協助您解決問題。應用程式存在問題的其中一個徵兆就是角色執行個體無法啟動,或是在初始化、忙碌和停止狀態之間循環。

遺失執行階段相依性

如果應用程式中的角色所依賴的任何組件並不是 .NET Framework 或 Windows Azure Managed 程式庫中的組件,則必須明確地在應用程式封裝中加入該組件。請記得,根據預設,Windows Azure 並不提供其他的 Microsoft 架構。如果您的角色依賴的架構是屬於這種,則必須將這些組件加入至應用程式封裝中。

建置及封裝您的應用程式之前,請先確認下面項目:

  • 如果您是使用 Visual Studio,而專案中所參考的組件並不是屬於 Windows Azure SDK 或 .NET Framework 中的組件,則請針對每一個這樣的組件確認其 [複製到本機] 屬性是設定為 True。如果您不是使用 Visual Studio,就必須在呼叫 CSPack 時指定所參考組件的位置。如需使用 CSPack 的詳細資訊,請參閱<CSPack 命令列工具>。

  • 確認 web.config 檔案的 compilation 項目中並未參考任何未使用的組件,以及確認所有參考都指向屬於 .NET Framework 或 Windows Azure SDK 的組件,或是已在 Visual Studio 中將組件的 [複製到本機] 屬性設定為 True,或在執行 CSPack 時已將組件加入應用程式封裝中。

  • 確認每個 .cshtml 檔案的 Build Action 是設定為 Content。如此可確保檔案會正確出現在封裝中,並允許其他參考的檔案出現在封裝中。

錯誤的組件目標平台

Windows Azure 是 64 位元的環境。因此,針對 32 位元目標平台所編譯的 .NET 組件無法在 Windows Azure 上運作。

角色在初始化或停止期間擲回未處理的例外狀況

RoleEntryPoint 類別的方法 (包括 OnStartOnStopRun) 所擲回的任何例外狀況都是未處理的例外狀況。如果這些方法的其中一個發生了未處理的例外狀況,角色就會回收。如果角色重複回收,每次它嘗試啟動時可能就會擲回未處理的例外狀況。

從 Run 方法傳回角色

Run 方法的目的是要無限期地執行。如果您的程式碼覆寫了 Run 方法,它應會無限期地進入休眠狀態。如果傳回 Run 方法,角色就會回收。

不正確的 DiagnosticsConnectionString 設定

如果應用程式使用 Windows Azure 診斷功能,則您的服務組態檔必須指定 DiagnosticsConnectionString 組態設定。這個設定應該指定一個 HTTPS 連接,以連接到您在 Windows Azure 中的儲存體帳戶。

為了確保您將應用程式封裝部署至 Windows Azure 之前 DiagnosticsConnectionString 設定是正確的,請確認下面項目:

  • 確認 DiagnosticsConnectionString 設定是指向 Windows Azure 中的有效儲存體帳戶。根據預設,這個設定會指向模擬的儲存體帳戶,因此您必須明確變更這個設定才能部署您的應用程式封裝。如果您沒有變更這個設定,當角色執行個體嘗試啟動診斷監視器時就會擲回例外狀況。這可能會造成角色執行個體無限期地回收。

  • 確認連接字串是以下面格式指定 (通訊協定必須指定為 HTTPS)。以您的儲存體帳戶名稱取代 MyAccountName,並以您的存取金鑰取代 MyAccountKey

    DefaultEndpointsProtocol=https;AccountName=MyAccountName;AccountKey=MyAccountKey
    
    如需有關使用連接字串的詳細資訊,請參閱<設定 Windows Azure 連接字串>。

如果您是使用 Windows Azure Tools for Microsoft Visual Studio 開發應用程式,則可以使用屬性頁來設定這個值。如需有關使用 Visual Studio 設定組態值的詳細資訊,請參閱<Configuring the Cloud Service>。

匯出的憑證沒有包含私密金鑰

若要在 SSL 下執行 Web 角色,必須確保匯出的管理憑證包含私密金鑰。如果您是使用 Windows 憑證管理員匯出憑證,請務必選取 [是,匯出私密金鑰] 選項。憑證必須匯出為 PFX 格式,這是目前唯一支援的格式。

另請參閱

顯示:
© 2014 Microsoft