远程调试疑难解答
适用于: 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)。
可能需要提升远程调试器的权限
在某些情况下,可能需要以管理员身份运行远程调试器。 有关详细信息,请参阅以管理员身份运行远程调试器。