排查远程调试问题

适用于: Visualstudio

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

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

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

否则,以下是最常见的问题和解决方案:

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

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

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

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

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

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

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

  • 符号状态” 列指示是否为模块正确加载了符号。
  • 用户代码 ”列指示尝试调试的模块是否归类为“我的代码”。 如果它错误地显示为“我的代码”,则可能已将发布版本部署到服务器。 发布二进制文件已经过优化,永远不会被视为“我的代码”,因此请禁用“仅我的代码”或将调试版本部署到服务器。
  • 如果 “用户代码 ”设置正确,但未加载符号,请验证调试器是否使用正确的符号文件。 调试器仅加载与生成应用时创建的 .pdb 文件完全匹配的符号 (.pdb) 文件, (原始 .pdb 文件或复制) 。 对于远程 Windows 调试,默认情况下,PDB 文件在 Visual Studio 计算机上读取,而不是从服务器读取。 (但是,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) 。

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

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