你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 Azure 应用服务中为 .NET 应用启用快照调试器
注意
如果使用的是 .NET Core 预览版,或者应用程序引用了 Application Insights SDK(通过依赖程序集直接或间接),请按照为其他环境启用 Snapshot Debugger 的说明进行操作,将 Microsoft.ApplicationInsights.SnapshotCollector
NuGet 包包含在应用程序中。
Snapshot Debugger 目前支持按 Windows 服务计划在 Azure 应用程序服务上运行的 ASP.NET 和 ASP.NET Core 应用。
建议在使用 Snapshot Debugger 时在“基本”或更高的服务层级上运行应用程序。 对于大多数应用程序:
- “免费”和“共享”服务层级没有足够的内存或磁盘空间用于保存快照。
- 消耗层级当前不可用于 Snapshot Debugger。
尽管已预安装 Snapshot Debugger 作为应用服务运行时的一部分,但需要启用它才能获取应用服务应用的快照。 Snapshot Debugger 的无代码安装遵循 .NET Core 支持策略。
部署 .NET 应用程序服务 Web 应用后:
在 Azure 门户中导航到你的应用服务。
在左侧菜单中选择“设置”>“Application Insights”。
单击“启用 Application Insights”。
- 如果你要使用现有的 Application Insights 资源,请在“更改资源”下选择相应的选项。
在“检测应用程序”下,选择“.NET”选项卡。
将两个 Snapshot Debugger 开关切换到“打开”。
现已启用 Snapshot Debugger。
禁用快照调试器
若要为应用服务资源禁用 Snapshot Debugger,请执行以下操作:
- 在 Azure 门户中导航到你的应用服务。
- 在左侧菜单中选择“设置”>“Application Insights”。
- 将 Snapshot Debugger 开关切换到“关闭”。
为应用程序生成可触发异常的流量。 然后等待 10 到 15 分钟,这样快照就会发送到 Application Insights 实例。
为其他云区域启用 Snapshot Debugger
目前唯一需要修改终结点的区域 Azure 政府和通过 Application Insights 连接字符串由世纪互联运营的 Microsoft Azure。
连接字符串属性 | 美国政府云 | 中国云 |
---|---|---|
SnapshotEndpoint | https://snapshot.monitor.azure.us |
https://snapshot.monitor.azure.cn |
若要详细了解其他连接替代,请参阅 Application Insights 文档。
配置 Snapshot Debugger
为快照引入启用 Microsoft Entra 身份验证
Snapshot Debugger 支持对快照引入操作进行 Microsoft Entra 身份验证。 要引入应用程序的所有快照,你的应用程序必须经过身份验证并向 Snapshot Debugger 代理提供所需的应用程序设置。
到目前为止,只有当你的应用程序中使用 Application Insights Profiler 来引用和配置 Microsoft Entra ID 时,Snapshot Debugger 才支持 Microsoft Entra 身份验证。
若要在应用服务资源中为快照引入启用 Microsoft Entra ID,请执行以下操作:
将用于对 Application Insights 资源进行身份验证的托管标识添加到应用服务。 可以创建下列其中一项:
在 Application Insights 资源中配置并启用 Microsoft Entra ID。 有关详细信息,请参阅以下文档
添加以下应用程序设置。 此设置告知 Snapshot Debugger 代理要使用哪个托管标识:
对于系统分配的标识:
应用设置 | 值 |
---|---|
APPLICATIONINSIGHTS_AUTHENTICATION_STRING | Authorization=AD |
对于用户分配的标识:
应用设置 | 值 |
---|---|
APPLICATIONINSIGHTS_AUTHENTICATION_STRING | Authorization=AD;ClientID={用户分配的标识的客户端 ID} |
不支持的方案
可以在下面找到不支持 Snapshot Collector 的场景:
方案 | 副作用 | 建议 |
---|---|---|
在应用程序 (.csproj) 中直接使用 Snapshot Collector SDK,并已启用高级选项“互操作”。 | 本地 Application Insights SDK(包括 Snapshot Collector 遥测)会丢失,并且没有任何快照可用。 应用程序在启动 System.ArgumentException: telemetryProcessorTypedoes not implement ITelemetryProcessor. 时可能会崩溃详细了解 Application Insights 功能“互操作”。 |
如果使用高级选项“互操作”,请使用无代码 Snapshot Collector 注入(通过 Azure 门户启用)。 |
后续步骤
- 在 Azure 门户中查看快照。
- 排查 Snapshot Debugger 问题。