在 Azure App Service 中啟用適用於 .NET 應用程式的快照偵錯工具

快照偵錯工具目前支援在 Windows 服務方案的 Azure App Service 上執行的 ASP.NET 和 ASP.NET Core 應用程式。

注意

建議您在使用快照偵錯工具時,於基本服務層或更高層執行您的應用程式。 對於大部分應用程式,免費和共用服務層級沒有足夠的記憶體或磁碟空間來儲存快照集。 快照偵錯工具目前無法使用取用層。

啟用快照偵錯工具

快照偵錯工具會隨著 App Service 執行階段一起預先安裝,但您需要將其開啟,才能取得 App Service 應用程式的快照集。 若要為應用程式啟用快照偵錯工具,請遵循下面的指示:

注意

如果您要使用 .NET Core 的預覽版本,或是您的應用程式直接或間接透過相依組件參考 Application Insights SDK,則請遵循為其他環境啟用快照偵錯工具的指示,以包括 Microsoft.ApplicationInsights.SnapshotCollector NuGet 套件與應用程式。

注意

Application Insights 快照偵錯工具的無程式碼安裝會遵循 .NET Core 支援原則。 如需支援的執行階段的詳細資訊,請參閱 .NET Core 支援原則

部署 .NET 應用程式之後:

  1. 移至 Azure 控制台找出您的 App Service。

  2. 移至 [設定]>[Application Insights] 頁面。

    Screenshot showing the Enable App Insights on App Services portal.

  3. 遵循頁面上的指示來建立新資源,或選取現有 App Insights 資源來監視您的應用程式。

  4. 將快照偵錯工具切換為 [開啟]

    Screenshot showing how to add App Insights site extension.

  5. 現在已使用 App Service 應用程式設定來啟用快照偵錯工具。

    Screenshot showing App Setting for Snapshot Debugger.

如果您正在執行不同類型的 Azure 服務,以下是在其他支援平台上啟用快照偵錯工具的指示:

啟用其他雲端的快照偵錯工具

目前唯一需要端點修改的地區是 Azure Government由 21Vianet 營運的 Microsoft Azure (透過 Application Insights 連接字串)。

連接字串屬性 美國政府雲端 中國雲端
SnapshotEndpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

如需其他連線覆寫的詳細資訊,請參閱 Application Insights 文件

啟用 Microsoft Entra 驗證來進行快照擷取

Application Insights 快照偵錯工具支援進行快照集擷取的 Microsoft Entra 驗證。 這表示,若要內嵌應用程式的所有快照集,您的應用程式必須經過驗證,並將必要的應用程式設定提供給快照偵錯工具代理程式。

截至目前為止,快照偵錯工具僅支援在應用程式中使用 Application Insights SDK 參考和設定 Microsoft Entra ID 時的 Microsoft Entra 驗證。

若要開啟 Microsoft Entra ID 來進行快照擷取:

  1. 建立要用於向 Application Insights 資源進行驗證的受控識別,並新增至您的 App Service。

    1. 若為系統指派的受控識別,請參閱下列文件

    2. 若為使用者指派的受控識別,請參閱下列文件

  2. 在您的 Application Insights 資源中設定並開啟 Microsoft Entra ID。 如需詳細資訊,請參閱下列文件

  3. 新增下列應用程式設定,以用來讓快照偵錯工具代理程式知道要使用的受控身分識別:

針對系統指派的身分識別:

應用程式設定
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Authorization=AD

使用者指派的身分識別:

應用程式設定
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Authorization=AD;ClientID={使用者指派身分識別的用戶端識別碼}

停用快照偵錯工具

若要停用快照偵錯工具,請重複啟用步驟。 但是將 [快照偵錯工具] 切換為 [關閉]

Azure Resource Manager 範本

針對 Azure App Service,您可以在 Azure Resource Manager 範本內設定應用程式設定,以啟用快照偵錯工具和 Profiler。 例如:

{
  "apiVersion": "2015-08-01",
  "name": "[parameters('webSiteName')]",
  "type": "Microsoft.Web/sites",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[variables('hostingPlanName')]"
  ],
  "tags": { 
    "[concat('hidden-related:', resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName')))]": "empty",
    "displayName": "Website"
  },
  "properties": {
    "name": "[parameters('webSiteName')]",
    "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName'))]"
  },
  "resources": [
    {
      "apiVersion": "2015-08-01",
      "name": "appsettings",
      "type": "config",
      "dependsOn": [
        "[parameters('webSiteName')]",
        "[concat('AppInsights', parameters('webSiteName'))]"
      ],
      "properties": {
        "APPINSIGHTS_INSTRUMENTATIONKEY": "[reference(resourceId('Microsoft.Insights/components', concat('AppInsights', parameters('webSiteName'))), '2014-04-01').InstrumentationKey]",
        "APPINSIGHTS_PROFILERFEATURE_VERSION": "1.0.0",
        "APPINSIGHTS_SNAPSHOTFEATURE_VERSION": "1.0.0",
        "DiagnosticServices_EXTENSION_VERSION": "~3",
        "ApplicationInsightsAgent_EXTENSION_VERSION": "~2"
      }
    }
  ]
},

不支援的案例

您可以在下面找到不支援 Snapshot Collector 的案例:

案例 副作用 建議
您直接在應用程式中使用 Snapshot Collector SDK (.csproj),並且已啟用進階選項 "Interop"。 本機 Application Insights SDK (包括 Snapshot Collector 遙測資料) 將會遺失,不會提供快照集。
您的應用程式可能會在啟動時當機,並顯示 System.ArgumentException: telemetryProcessorTypedoes not implement ITelemetryProcessor.
深入了解 Application Insights 功能 "Interop"。
如果您使用進階選項 "Interop",請使用無程式碼 Snapshot Collector 插入 (透過 Azure 入口網站啟用)。

下一步

  • 針對應用程式產生可觸發例外狀況的流量。 然後,等待 10 到 15 分鐘,讓快照集傳送到 Application Insights 執行個體。
  • 在 Azure 入口網站中查看快照集
  • 如需針對快照偵錯工具問題進行疑難排解的說明,請參閱快照偵錯工具疑難排解