远程调试疑难解答

适用于: Visual Studio

本文介绍远程调试的一些常见问题的故障排除步骤和解决方案。

若要排查远程调试问题,第一步是检查错误消息并进行调查。 该消息可能包含包含详细信息的链接。

接下来,在尝试调试应用之前,验证应用是否在服务器上正常运行。

如遇异常,可参考以下最常见的问题和解决方案:

安装的远程调试器版本不正确

对于在远程计算机上手动安装远程调试器的情况,请确保已安装的版本与 Visual Studio 的版本相匹配。 有关下载远程调试器的当前链接,请参阅 远程调试器

发行版本而不是调试版本部署到服务器

发布工具和其他一些发布选项具有需要设置的单独调试配置设置。 (在 Visual Studio 中运行应用时,你可能选择了调试版本,但这并不意味着你在服务器上安装了调试版本。)

可以附加到远程应用程序,但无法命中断点(或调试符号不会加载)

对于此问题,你可能会看到“未加载任何符号”的消息。

使用模块窗口可了解模块的符号加载状态,以及调试器将哪些模块视为用户代码或我的代码

  • “符号状态”列指示是否为模块正确加载了符号。
  • “用户代码”列指示尝试调试的模块是否归类为“我的代码”。 如果错误地显示为“我的代码”,则可能已将发布版本部署到服务器。 发行二进制文件经过优化,绝不会被视为“我的代码”,因此要么禁用“仅我的代码”,要么将调试版本部署到服务器。
  • 如果“用户代码”设置正确,但未加载符号,请验证调试器是否在使用正确的符号文件。 调试器只会加载与在生成应用时创建的 .pdb 文件完全匹配的符号(.pdb 文件)(即原始 .pdb 文件或副本)。 对于远程 Windows 调试,默认在 Visual Studio 计算机上而不是从服务器读取 PDB 文件。 (但是,msvsmon 有一个命令行参数,用于启用回退到远程 .pdb 文件。)

有关详细信息,请参阅 断点疑难解答

(ASP.NET)服务器上运行的 ASP.NET 版本与为应用配置的版本不同

可能需要在服务器或本地计算机上安装正确版本的 ASP.NET 或 ASP.NET Core。 若要检查应用版本的 ASP.NET,请右键单击解决方案资源管理器中的项目,然后选择“属性”。 检查“生成”选项卡。服务器上 ASP.NET 的配置特定于方案。 对于 ASP.NET Framework 应用,可能需要在 web.config 文件中设置框架版本。

在“附加到进程”对话框中看不到所需的进程

某些方案要求手动附加到正确的进程。 如果对方案使用 “附加到进程 ”,并且看不到预期的过程:

  • 如果之前设置了搜索进程筛选器,请检查是否需要将其清除。
  • 选择“显示所有用户的进程”以显示在其他用户帐户下运行的进程。
  • 对于慢速连接,可能需要禁用“自动刷新”
  • 如果它们已从默认值更改,“ 连接类型 ”和 附加到”字段可能会限制列表中显示的进程。

你未附加到正确的进程

如果使用附加到进程,请确保附加到正确的进程。 有关详细信息,请参阅常用调试方案

未打开所需的端口

在大多数 ASP.NET 设置中,必需端口通过安装 ASP.NET 和远程调试器来打开。 但是,你可能需要验证端口是否已打开。 例如,在 Azure VM 方案中,可能需要打开远程调试器端口和服务器端口(例如,IIS 使用端口 80)。

可能需要提升远程调试器的权限

在某些情况下,可能需要以管理员身份运行远程调试器。 有关详细信息,请参阅以管理员身份运行远程调试器