使用 Snapshot Debugger 调试实时 ASP.NET Azure 应用Debug live ASP.NET Azure apps using the Snapshot Debugger
快照点和记录点类似于断点,但与断点不同的是,快照点不会在命中时停止应用程序。通常,在快照点捕获快照需要 10-20 毫秒。
在本教程中,你将:
- 启动 Snapshot Debugger
- 设置快照点,以及查看快照
- 设置记录点
- 仅在 Visual Studio 2017 Enterprise 版本15.5 或更高版本的Azure 开发工作负荷中开始使用 Snapshot Debugger。(可在“各个组件”选项卡的“调试和测试” > “Snapshot Debugger”下找到它。)
如果尚未安装, 请安装。如果要从以前的 Visual Studio 安装中进行更新, 请运行 Visual Studio 安装程序, 并在ASP.NET 和 web 开发工作负荷中检查 Snapshot Debugger 组件。
如果尚未安装,请安装 Visual Studio 2017 Enterprise 版本 15.5 或更高版本。如果要从以前的 Visual Studio 2017 安装进行更新, 请运行 Visual Studio 安装程序, 并在ASP.NET 和 web 开发工作负荷中检查 Snapshot Debugger 组件。
基本或更高版本的 Azure 应用服务计划。
快照集合适用于在 Azure App Service 中运行的以下 Web 应用:
- 在 .NET Framework 4.6.1 或更高版本上运行的 ASP.NET 应用程序。
- 在 Windows 中的 .Net Core 2.0 或更高版本上运行的 ASP.NET Core 应用程序。
打开项目并启动 Snapshot DebuggerOpen your project and start the Snapshot Debugger
重要
对于快照调试,需要打开与已发布到 Azure 应用服务的“相同版本的源代码”。
- 在云资源管理器(“视图”>“云资源管理器”)中,右键单击项目部署到的 Azure 应用服务,然后选择“附加快照调试器”。
- 选择“调试”>“附加 Snapshot Debugger…”。选择部署项目的 Azure 应用服务和一个 Azure 存储帐户,然后单击“附加”。Snapshot Debugger 还支持Azure Kubernetes 服务和。
重要
第一次选择“附加快照调试器”时,系统会提示在 Azure 应用服务上安装快照调试器站点扩展。此安装需要重启 Azure 应用服务。
备注
备注
(Visual Studio 2019 版本16.2 及更高版本)Snapshot Debugger 已启用 Azure 云支持。请确保所选的 Azure 资源和 Azure 存储帐户都来自同一个云。如果你对企业的azure 符合性配置有任何疑问, 请联系 Azure 管理员。
Visual Studio 现在处于快照调试模式下。
“模块”窗口显示何时 Azure 应用服务的所有模块都已加载(依次选择“调试”>“窗口”>“模块”可打开此窗口)。
- 在代码编辑器中, 单击你感兴趣的代码行旁边的左侧装订线, 设置吸附点。请确保它是要执行的代码。
- 单击“开始收集”以打开快照点。
提示
查看快照时,不能执行步骤,但可以在代码中放置多个快照点以在不同代码行处跟进执行。如果代码中有多个快照点,快照调试器可以确保对应的快照来自相同的最终用户会话。即使有多个用户点击应用,快照调试器仍会执行此操作。
获取快照Take a snapshot
设置吸附点后, 可以通过转到网站的 "浏览器" 视图并运行标记的代码行或等待用户从网站的使用中生成一个快照, 手动生成快照。
- 命中快照点时,快照将出现在诊断工具窗口。若要打开此窗口,请依次选择“调试”>“窗口”>“显示诊断工具”。
- 双击快照点,以在代码编辑器中打开快照。
在此视图中,可通过将鼠标悬停在变量上来查看数据提示;使用“局部变量”、“监视”和“调用堆栈”窗口;以及计算表达式。
网站本身仍处于活动, 最终用户不会受到影响。默认情况下,每个快照点只捕获一个快照:快照点在捕获快照后即关闭。如果要在此快照点再捕获一个快照,可以通过单击“更新集合”来重新打开快照点。
需要帮助?请参阅疑难解答和已知问题和页。
设置条件性快照点Set a conditional snappoint
如果很难在应用中重新创建特定状态, 请考虑使用条件吸附点。条件吸附点帮助您控制何时拍摄快照 (例如, 当变量包含要检查的特定值时)。可以使用表达式、筛选器或命中次数设置表达式。
创建条件性快照点To create a conditional snappoint
- 右键单击快照点图标(空心球)并选择“设置”。
- 在“快照点设置”窗口中,键入一个表达式。
在上图中,仅在 时为快照点拍摄快照。
除了在点击快照点时拍摄快照,还可以配置快照点以记录消息(即创建记录点)。无需重新部署应用即可设置记录点。记录点通过虚拟方式执行,不会对正在运行的应用程序产生任何影响或副作用。
创建记录点To create a logpoint
右键单击快照点图标(蓝色六边形),然后选择“设置”。
- 在“消息”字段中,可以输入想要记录的新日志消息。还可以将日志消息中的变量放在大括号中,从而计算它们的值。
如果选择“发送到输出窗口”,则在点击记录点时,消息将出现在“诊断工具”窗口中。
如果选择“发送到应用程序日志”,则在点击记录点时,消息会出现在可以看到来自 (或 .NET Core 中的 )的消息的任何位置,例如 。
后续步骤Next steps
在本教程中,你已了解如何使用适用于应用服务的 Snapshot Debugger。你可能想要阅读有关此功能的更多详细信息。