远程调试概念

已完成

Visual Studio 提供功能强大的远程调试工具和功能,用于对在开发环境外部的其他计算机上运行的应用程序进行故障排除。 大多数开发人员在本地开发时都熟悉 Visual Studio 调试工具,但可能没有意识到在其他环境中运行的应用也可提供类似的体验。 下面是远程调试的一些常用方案:

  • 连接并调试托管在众多 Azure 服务(例如应用服务实例或虚拟机)之一中的应用
  • 调试在 IIS 的本地服务器中托管的应用
  • 调试在另一台开发计算机上运行的应用,以帮助进行故障排除
  • 附加到客户端进程(例如 Web 浏览器)以调试在本地应用上下文外部运行的代码
  • 调试在独立于开发环境的容器化环境中运行的应用程序

在接下来的练习中,你将侧重于此列表中的第一个方案,即使用 Visual Studio 调试在 Azure 应用服务中运行的应用。 应用服务是最常用的 Azure 服务之一,也是托管 .NET 应用程序的强大选项。

了解远程调试工具

远程调试包含各种 Visual Studio 工具和功能。 远程调试部署在其他服务器或虚拟机上的应用程序时,可能需要安装 Visual Studio 远程工具。

在接下来的练习中,你将调试托管 Azure 应用服务的应用,因此无需安装这些工具。 在此方案中,会自动处理许多这些类型的配置。 可使用 Visual Studio 的附加到进程功能直接连接到应用服务进程。 假设加载了正确的调试符号和源代码,然后你可以调试应用程序,就好像它在你的计算机上本地运行一样。

符号文件概述

Visual Studio 需要源代码的符号文件才能调试在其他计算机或环境中运行的应用程序。 在生成过程中,符号文件在 bin 目录下创建,以 .pdb 扩展名结尾。 简而言之,符号文件能够说明编译代码和源代码之间的关系。 Visual Studio 调试器使用符号文件在编译版本执行时逐行单步调式源代码。 在本地运行和调试时,由于 .pdb 文件的默认搜索位置,Visual Studio 能够自动找到生成的符号文件。

图中显示了生成和符号进程。

对应用程序进行编译并将其部署到 Azure 时,Visual Studio 不会自动访问必要的符号文件,因此必须在调试期间提供这些文件的本地副本。 本地源代码和符号文件必须与已部署的代码完全匹配,以便指令正确排列。