适用于:
Visualstudio
本文介绍
远程调试
的一些常见问题的故障排除步骤和解决方案。
若要排查远程调试问题,第一步是检查错误消息并进行调查。 该消息可能包含包含详细信息的链接。
接下来,在尝试调试应用之前,验证该应用是否在服务器上正确运行。
否则,以下是最常见的问题和解决方案:
安装的远程调试器版本不正确
对于在远程计算机上手动安装远程调试器的方案,请确保已安装的版本与 Visual Studio 版本匹配。 有关下载远程调试器的当前链接,请参阅
远程调试器
。
发布版本部署到服务器,而不是调试版本
“发布”工具和一些其他发布选项具有需要设置的单独调试配置设置。 (在 Visual Studio 中运行应用时,你可能选择调试版本,但这并不意味着你在服务器上安装了调试版本。)
可以附加到远程应用程序,但无法命中断点 (或调试符号不会加载)
对于此问题,你可能会看到消息
“未加载任何符号
”。
使用
“模块”窗口
可找出模块的符号加载状态,以及调试器将哪些模块视为用户代码或
“我的代码
”。
“
符号状态”
列指示是否为模块正确加载了符号。
“
用户代码
”列指示尝试调试的模块是否归类为“我的代码”。 如果它错误地显示为“我的代码”,则可能已将发布版本部署到服务器。 发布二进制文件已经过优化,永远不会被视为“我的代码”,因此请禁用“仅我的代码”或将调试版本部署到服务器。
如果
“用户代码
”设置正确,但未加载符号,请验证调试器是否使用正确的符号文件。 调试器仅加载与生成应用时创建的 .pdb 文件完全匹配的符号 (.pdb) 文件, (原始 .pdb 文件或复制) 。 对于远程 Windows 调试,默认情况下,PDB 文件在 Visual Studio 计算机上读取,而不是从服务器读取。 (但是,msvsmon 具有一个命令行参数,用于回退到远程 .pdb 文件。)
有关详细信息,请参阅
断点疑难解答
。
可能需要在服务器或本地计算机上安装正确版本的 ASP.NET 或 ASP.NET Core。 若要检查 ASP.NET 的应用版本,请右键单击解决方案资源管理器中的项目,然后选择
“属性
”。 选中“生成”选项卡。服务器上 ASP.NET 的配置特定于方案。 对于 ASP.NET Framework 应用,可能需要在
web.config
文件中设置框架版本。
在“附加到进程”对话框中看不到所需的进程
某些方案要求手动附加到正确的进程。 如果对方案使用
“附加到进程
”,但看不到所需的过程:
如果之前设置了搜索进程筛选器,检查是否需要清除它。
选择“
显示所有用户的进程”
以显示在其他用户帐户下运行的进程。
对于慢速连接,可能需要禁用
自动刷新
。
如果它们已从默认值更改,
则“连接类型”
和
“附加到
”字段可能会限制列表中显示的进程。
你未附加到正确的进程
如果使用附加到进程,请确保附加到正确的进程。 有关详细信息,请参阅
常见调试方案
。
未打开所需的端口
在大多数 ASP.NET 设置中,通过安装 ASP.NET 和远程调试器打开所需的端口。 但是,可能需要验证端口是否已打开。 例如,在 Azure VM 方案中,可能需要打开
远程调试器端口
,服务器端口 (例如,IIS 使用端口 80) 。
可能需要远程调试器的提升权限
在某些情况下,可能需要以管理员身份运行远程调试器。 有关详细信息,请参阅
以管理员身份运行远程调试器
。