匯出 (0) 列印
全部展開

在 Visual Studio 中對雲端服務或虛擬機器進行偵錯

更新日期: 2014年3月

Visual Studio 提供了對 Azure 雲端服務和虛擬機器進行偵錯的各種選項。

本主題包括下列各節。

對本機電腦上的雲端服務進行偵錯

您可以使用 Azure 計算模擬器對本機電腦上的雲端服務進行偵錯,以節省時間與金錢。在部署服務前先在本機進行偵錯,不需支付計算時間,即可改進可靠性和效能。不過,有些錯誤只會在您於 Azure 本身執行雲端服務時發生。如果您在發行服務時啟用遠端偵錯,然後將偵錯工具附加至角色執行個體,即可排除這些錯誤。

模擬器會模擬 Azure 計算服務並在本機環境中執行,以便您在部署雲端服務之前進行測試和偵錯。模擬器可處理角色執行個體的生命週期,並且為模擬的資源 (例如本機儲存體) 提供存取。當您從 Visual Studio 偵錯或執行服務時,Visual Studio 會自動啟動模擬器做為背景應用程式,然後再將服務部署至模擬器。當服務在本機環境中執行時,您可以使用模擬器來檢視該服務。您可以執行完整版本或精簡版本的模擬器。(從 Azure 2.3 起,預設會使用精簡版本的模擬器。)請參閱<使用 Emulator Express 在本機執行雲端服務並進行偵錯>。

對本機電腦上的雲端服務進行偵錯

  1. 在 Azure 計算模擬器功能表列上,按一下 [偵錯] > [偵錯]。

  2. 在通知區域中開啟 Azure 圖示的捷徑功能表,然後按一下 [顯示計算模擬器 UI],即可顯示計算模擬器的使用者介面。

    UI 的左方窗格會顯示目前已部署至計算模擬器的服務,以及每個服務正在執行的角色執行個體。您可以選擇服務或角色,將生命週期、記錄和診斷資訊顯示在右側窗格中。如果您將焦點置於內含視窗的上邊緣,視窗會展開並填滿右方窗格。

  3. 按一下 [偵錯] 功能表上的命令,並在您的程式碼中設定中斷點,以逐步執行應用程式。

    在偵錯工具中逐步執行應用程式時,窗格會與應用程式目前的狀態一併更新。當您停止偵錯時,會刪除應用程式部署。

    如果應用程式包含 Web 角色,而且已將 [啟動動作] 屬性設定為啟動 Web 瀏覽器,Visual Studio 便會在瀏覽器中啟動 Web 應用程式。

    如果您在服務組態中變更角色的執行個體數目,就必須停止雲端服務,然後重新啟動偵錯,以便對角色的這些新執行個體進行偵錯。

    note附註
    當您停止執行或偵錯服務時,並不會停止本機計算模擬器和儲存體模擬器。您必須從通知區域明確停止它們。

在 Azure 中對雲端服務進行偵錯

若要從遠端機器對雲端服務進行偵錯,您必須在部署雲端服務時明確地啟用該功能,才能在執行您的角色執行個體的虛擬機器上安裝必要的服務 (如 msvsmon.exe)。如果您未在發行服務時啟用遠端偵錯,則必須在啟用遠端偵錯的狀態下重新發行服務。

對雲端服務啟用遠端偵錯時,效能並不會降低,也不會產生其他費用。您不能對生產服務使用遠端偵錯,因為這可能會對使用該服務的用戶端造成負面影響。

note附註
當您從 Visual Studio 發行雲端服務時,可針對該服務中以 .NET Framework 4 或 .NET Framework 4.5 為目標的任何角色啟用 IntelliTrace。您可以使用 IntelliTrace 檢查角色執行個體過去發生的事件,並重現當時的內容。請參閱使用 IntelliTrace 和 Visual Studio 對已發行的雲端服務進行偵錯使用 IntelliTrace 進行偵錯

啟用雲端服務的遠端偵錯

  1. 開啟 Azure 專案的捷徑功能表,然後按一下 [發行]。

  2. 選取 [預備] 環境和 [偵錯] 組態。

    這只是指導方針。您可以選擇在 [生產] 環境中執行測試環境。不過,如果在 [生產] 環境上啟用遠端偵錯,有可能會對使用者造成負面影響。您可以選擇 [發行] 組態,但 [偵錯] 組態比較容易進行偵錯。

    選擇偵錯組態
  3. 請遵循往常的步驟,但選取 [進階設定] 索引標籤上的最後一個核取方塊。

    偵錯組態

將偵錯工具附加至 Azure 中的雲端服務

  1. 在 [伺服器總管] 中,展開雲端服務的節點。

  2. 開啟您要附加之角色或角色執行個體的捷徑功能表,然後按一下 [附加偵錯工具]。

    附加偵錯工具

    如果您對角色進行偵錯,則 Visual Studio 偵錯工具會附加至該角色的每個執行個體。偵錯工具會在執行該行程式碼並符合中斷點條件之第一個角色執行個體的中斷點中斷。如果對執行個體進行偵錯,則偵錯工具只會附加至該執行個體,並且在該特定執行個體執行該行程式碼並符合中斷點條件時於中斷點中斷。

  3. 在偵錯工具附加至執行個體之後,請如往常般進行偵錯。

    偵錯工具會自動附加至您的角色的適當主機處理序。根據該角色而定,偵錯工具會附加至 w3wp.exe、WaWorkerHost.exe 或 WaIISHost.exe。若要確認附加偵錯工具的處理序,請在 [伺服器總管] 中展開執行個體節點。如需 Azure 處理序的詳細資訊,請參閱 Azure 角色架構

  4. 若要識別附加偵錯工具的處理序,請在功能表列上選擇 [偵錯]、[Windows]、[處理序],以開啟 [處理序] 對話方塊。(鍵盤:Ctrl+Alt+Z)

    偵錯處理序

    若要中斷特定處理序的連結,請開啟其捷徑功能表,然後按一下 [中斷處理序連結]。或者,在 [伺服器總管] 中找到執行個體節點、尋找處理序、開啟其捷徑功能表,然後按一下 [中斷處理序連結]。

Warning警告
避免在進行遠端偵錯時長時間於中斷點停止。Azure 將會停止超過數分鐘的處理序視為沒有回應,並停止將流量傳送到該執行個體。如果停止太久,msvsmon.exe 就會中斷該處理序的連結。

若要中斷偵錯工具與執行個體或角色中所有處理序的連結,請開啟正在偵錯之執行個體或角色的捷徑功能表,然後按一下 [中斷偵錯工具連結]。

在 Azure 中進行遠端偵錯的限制

在 Azure SDK 4.3 中,遠端偵錯具有下列限制。

  • 若已啟用遠端偵錯,您便無法發行其中角色有超過 25 個執行個體的雲端服務。

  • 偵錯工具會使用連接埠 30400 至 30424 與 31400 至 31424。如果您嘗試使用任何一個連接埠,便無法發行服務,且 Azure 活動記錄中會出現下列錯誤訊息:

    • 根據 .csdef 檔案驗證 .cscfg 檔案時發生錯誤。角色 'role' 之端點 Microsoft.WindowsAzure.Plugins.RemoteDebugger.Connector 的保留連接埠範圍 'range' 與已定義的連接埠或範圍重疊。

    • 配置失敗。請稍後重試、試著減少 VM 大小或角色執行個體數目,或試著部署到其他區域。

對 Azure 虛擬機器進行偵錯

您可以使用 Visual Studio 的 [伺服器總管],對 Azure 虛擬機器上執行的程式進行偵錯。在 Azure 虛擬機器上啟用遠端偵錯時,Azure 會在該虛擬機器上安裝遠端偵錯延伸模組。接著,您即可附加至虛擬機器上的處理序,如往常般進行偵錯。

對 Azure 虛擬機器進行偵錯

  1. 在 [伺服器總管] 中展開 [虛擬機器] 節點,並選取您要偵錯的虛擬機器節點。

  2. 開啟內容功能表,按一下 [啟用偵錯]。

    當系統詢問您是否確定要在虛擬機器上啟用偵錯時,請按一下 []。

    Azure 會在虛擬機器上安裝遠端偵錯延伸模組,以便啟用偵錯。

  3. 安裝好遠端偵錯延伸模組後,開啟虛擬機器的內容功能表並按一下 [附加偵錯工具...]。

    Azure 會取得虛擬機器上的處理序清單並顯示於 [附加至處理序] 對話方塊中。

  4. 在 [附加至處理序] 對話方塊中,按一下 [選取] 來限制結果清單,僅顯示您要偵錯的程式碼類型。您可以選擇 Managed 程式碼、原生程式碼或兩者。

  5. 按一下虛擬機器上您要偵錯的處理序,然後按一下 [附加]。例如,若要在虛擬機器上偵錯 Web 應用程式,可以選擇 w3wp.exe 處理序。如需詳細資訊,請參閱在 Visual Studio 中偵錯一或多個處理序Azure 角色架構

建立 Web 專案和虛擬機器以便偵錯

發行 Azure 專案之前,您可能會發現在支援偵錯和測試案例的環境中進行測試非常有用,您還可以在這個環境中安裝測試和監控程式。其中一種做法是對虛擬機器上的應用程式進行遠端偵錯。

Visual Studio ASP.NET 專案提供了一個選項,以便建立可用於測試應用程式的實用虛擬機器。此虛擬機器包括一般需要的端點,例如 PowerShell、遠端桌面和 WebDeploy。

建立 Web 專案和虛擬機器以便偵錯

  1. 在 Visual Studio 中,建立新的 ASP.NET Web 應用程式。

  2. 在 [新增 ASP.NET 專案] 對話方塊的 [Azure] 區段中,選擇下拉式清單方塊中的 [虛擬機器]。讓 [建立遠端資源] 核取方塊保持選取狀態。按一下 [確定] 繼續進行。

    [在 Azure 上建立虛擬機器] 對話方塊隨即出現。

    note附註
    如果您尚未登入,系統會要求您登入 Azure 帳戶。

  3. 選取虛擬機器的各種設定,然後按一下 [確定]。如需詳細資訊,請參閱虛擬機器

    note附註
    您在 [DNS 名稱] 中輸入的名稱將會成為虛擬機器的名稱。

    Azure 會建立虛擬機器,然後佈建及設定端點,如遠端桌面和 Web Deploy。

  4. 完全設定好虛擬機器後,請在 [伺服器總管] 中選取此虛擬機器的節點。

  5. 開啟內容功能表,按一下 [啟用偵錯]。

    當系統詢問您是否確定要在虛擬機器上啟用偵錯時,請按一下 []。

    Azure 會在虛擬機器上安裝遠端偵錯延伸模組,以便啟用偵錯。

  6. 發行您的專案,如此文所述:作法:在 Visual Studio 中使用單鍵發行來部署 Web 專案。因為您想要在虛擬機器上進行偵錯,請在 [發行 Web] 精靈的 [設定] 頁面上,選取 [偵錯] 作為組態。這麼做可確保在偵錯時可使用程式碼符號。

  7. 如果先前已部署專案,請在 [檔案發行選項] 中,選取 [移除目的地的其他檔案]。

  8. 專案發行之後,在 [伺服器總管] 的虛擬機器內容功能表上,按一下 [附加偵錯工具...]。

    Azure 會取得虛擬機器上的處理序清單並顯示於 [附加至處理序] 對話方塊中。

  9. 在 [附加至處理序] 對話方塊中,按一下 [選取] 來限制結果清單,僅顯示您要偵錯的程式碼類型。您可以選擇 Managed 程式碼、原生程式碼或兩者。

  10. 按一下虛擬機器上您要偵錯的處理序,然後按一下 [附加]。例如,若要在虛擬機器上偵錯 Web 應用程式,可以選擇 w3wp.exe 處理序。如需詳細資訊,請參閱在 Visual Studio 中偵錯一或多個處理序

另請參閱

社群新增項目

顯示:
© 2014 Microsoft