在 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 應用程式之後:
移至 Azure 控制台找出您的 App Service。
移至 [設定]>[Application Insights] 頁面。
遵循頁面上的指示來建立新資源,或選取現有 App Insights 資源來監視您的應用程式。
將快照偵錯工具切換為 [開啟]。
現在已使用 App Service 應用程式設定來啟用快照偵錯工具。
如果您正在執行不同類型的 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 來進行快照擷取:
建立要用於向 Application Insights 資源進行驗證的受控識別,並新增至您的 App Service。
在您的 Application Insights 資源中設定並開啟 Microsoft Entra ID。 如需詳細資訊,請參閱下列文件
新增下列應用程式設定,以用來讓快照偵錯工具代理程式知道要使用的受控身分識別:
針對系統指派的身分識別:
應用程式設定 | 值 |
---|---|
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 入口網站中查看快照集。
- 如需針對快照偵錯工具問題進行疑難排解的說明,請參閱快照偵錯工具疑難排解。