練習 - 將 Visual Studio 偵錯工具附加至 App Service Web 應用程式
此時,應用程式已部署至 Azure,但無法正常運作。 應用程式仍可在本機運作,因此如果不進一步調查,很難確切判斷造成問題的原因。 Visual Studio 可藉由將偵錯工具附加至 Azure 上的 App Service 處理序,輕鬆協助您解決此問題。 本練習可讓您對應用程式進行偵錯,就像在本機執行一樣。
注意
嘗試附加偵錯工具之前,請務必確定本機程式碼的狀態符合部署至 Azure 的項目。 這可確保本機符號檔案和原始程式碼會與已部署的應用程式對齊。 在實際的應用程式中,如果使用 Git 來管理專案,您需檢查已部署的相同認可或版本。
設定偵錯設定
在 Azure 中對應用程式進行偵錯之前,請確定您在 Visual Studio 中完成下列步驟,以確保成功。
首先,請確定您已成功建置專案至少一次。 成功的建置可確保原始程式碼和任何必要的已編譯檔案都已準備就緒。 如果您的應用程式在本機執行,請務必停止應用程式。
從頂端 Visual Studio 功能表瀏覽至 [偵錯] > [選項]。 確認未勾選 [啟用 Just My code],然後選取 [確定]。
變更此設定可讓 Visual Studio 使用本機
bin
資料夾中的必要符號檔案,對部署至 Azure 的最佳化程式碼進行偵錯。 偵錯工具會使用符號檔作為已編譯、執行中程式碼和 Visual Studio 原始程式碼之間的橋樑,這就是為什麼您的本機原始程式碼務必符合部署應用程式。
將偵錯工具附加至 App Service
從 Visual Studio 頂端的主要功能表中,選取 [偵錯]>[附加到程序],以開啟對應的對話方塊。 使用此視窗,您可以連線並附加至不同的目標。 在此案例中,您將連線到在上一個步驟中建立的 App Service 執行個體。
選取 [連線類型] 下拉式清單,然後選擇 [Microsoft Azure App Services] 選項。
選取 [連線目標] 欄位旁的 [尋找...] 按鈕來開啟對話方塊,並瀏覽 Azure 訂用帳戶和應用程式服務。
找到並選取您在上一個步驟中建立的
GitHubBrowser123
App Service,然後選擇 [確定]。此
w3wp.exe
流程應該會出現在要連線的可用流程清單中,這是裝載已部署應用程式之 Azure App Service 的主要流程。 選取該流程,然後選擇右下角的 [附加] 來連線 Visual Studio 偵錯工具。在
Index.cshtml.cs
中,移至OnPost
方法的第一行,然後按一下左邊界 (或按右鍵並選擇 [中斷點]> [插入中斷點] ),在該方法中設定中斷點。Index.cshtml.cs
內的OnPost
方法會處理應用程式的大部分邏輯。您也可以選擇性地確認 Visual Studio 已載入偵錯工作階段的符號檔。 瀏覽至 [偵錯] > [Windows] > [模組] 以開啟模組視窗。 此視窗應該指出在您稍早所做的
.dll
Just My Code 設定變更之後,已成功載入 GitHub 瀏覽器 檔案的符號檔。
針對錯誤進行疑難排解
載入符號之後,您就可以像在本機一樣偵錯 Azure 裝載的應用程式。
在 Visual Studio 中設定中斷點之後,切換到瀏覽器中的應用程式、在應用程式搜尋方塊中輸入 dotnet 的值,然後按 [提交]。 Visual Studio 會叫用
OnPost
方法內的中斷點。 第一次可能需要一些時間才能同步處理。程式碼會嘗試使用IConfiguration
服務來擷取GitHubUrl
值。 根據預設,設定服務會從應用程式中的appsettings.json
檔案載入值。使用 Visual Studio 偵錯控制項上的不進入函式按鈕 (或按下 F10),移至會建立
searchUrl
的程式碼。 將滑鼠游標放在其上方的githubUrl
變數上方,您會發現值目前為 Null。 此程式碼在本機可正常運作,那為何 Azure 中的值為 null?開啟
appsettings.json
檔案進一步調查。 在此檔案中有一些關於記錄的組態設定,但找不到任何GitHubUrl
值。開啟
appsettings.Development.json
檔案。當您設定範例專案時,您會更新
appsettings.Development.json
中的組態設定。 此檔案包含只有在開發期間執行時才會套用 (部署到 Azure 不會套用) 的設定。 忘記在 Azure 中設定裝載應用程式生產版本的設定是常見的錯誤來源。自
appsettings.Development.json
複製GitHubUrl
機碼值組,並將其貼到最上層appsettings.json
檔案中,讓兩個檔案相符。 應用程式再次部署至 Azure 時,新的設定值會在appsettings.json
檔案中隨之移動。appsettings.json
檔案應該會看起來像這樣。透過按 Visual Studio 頂端的 [停止] 按鈕,將偵錯工具與 App Service 中斷連結,就像本機偵錯工作階段一樣。
若要重新部署您所做的變更,請以滑鼠右鍵按一下方案總管中的專案節點,然後再次選擇 [發佈]。
在發佈設定檔畫面上,所有原始部署設定仍為原樣,因此請再選取一次 [發佈] 以重新部署至 Azure。
部署完成時,Visual Studio 會啟動瀏覽器,再次顯示應用程式。 於搜尋表單中再次輸入 dotnet,然後按 Enter。 存放庫清單現在會正確載入。
恭喜! 您已使用 Visual Studio 成功解決 Azure App Service 中的錯誤。