Remote Debugging
你可以调试已部署在另一台计算机的 Visual Studio 应用程序。 要进行此操作,可使用 Visual Studio 远程调试器。
有关远程调试的深入说明,请参阅以下主题。
方案 | 链接 |
---|---|
Azure 应用服务 | 远程调试 Azure 上的 ASP.NET Core,或 Visual Studio Enterprise 的 Snapshot Debugger |
Azure VM | 远程调试 Azure VM 上的 ASP.NET |
ASP.NET | 远程调试 ASP.NET Core 或远程调试 ASP.NET |
C# 或 Visual Basic | 远程调试 C# 或 Visual Basic 项目 |
C++ | 远程调试 C++ 项目 |
Docker | 附加到在 Docker 容器上运行的进程 |
Linux | 在 Linux 上使用 SSH 通过附加到进程调试 .NET Core |
通用 Windows 应用 (UWP) | 在远程计算机上运行 UWP 应用或调试安装的应用包 |
如果只想下载并安装远程调试器,且不需要针对方案的任何其他说明,请按照本文中的步骤进行操作。
下载和安装远程工具
在要调试的远程设备或服务器上(而不是 Visual Studio 计算机上),请从下表中的链接下载并安装正确的远程工具版本。
- 下载适用于 Visual Studio 版本的远程工具的最新更新。 早期远程工具版本与较高版本的 Visual Studio 不兼容。 (例如,如果使用的是 Visual Studio 2019,请下载 Visual Studio 2019 远程工具的最新更新。在这种情况下,请不要下载 Visual Studio 2022 远程工具。)
- 下载与要安装远程工具的计算机具有相同体系结构的远程工具。 例如,如果要在运行 x64 操作系统的远程计算机上调试 x86 应用程序,请安装 x64 远程工具。 若要在 ARM64 操作系统上调试 x86、ARM 或 x64 应用程序,请安装 ARM64 远程工具。
Version | 链接 | 说明 |
---|---|---|
Visual Studio 2022 | 远程工具 | 兼容所有 Visual Studio 2022 版本。 下载与设备操作系统(x86、x64 (AMD64) 或 ARM64)匹配的版本。 在较旧版本的 Windows 服务器上,请参阅取消阻止文件下载,获取有关下载远程工具的帮助。 |
Visual Studio 2019 | 远程工具 | Visual Studio 2019 的远程工具可从 My.VisualStudio.com 获取。 如果出现提示,请加入免费的 Visual Studio Dev Essentials 计划,或使用 Visual Studio 订阅 ID 登录。 下载与设备操作系统(x86、x64 (AMD64) 或 ARM64)匹配的版本。 在较旧版本的 Windows 服务器上,请参阅取消阻止文件下载,获取有关下载远程工具的帮助。 |
Visual Studio 2017 | 远程工具 | Visual Studio 2017 的远程工具可从 My.VisualStudio.com 获取。 如果出现提示,请加入免费的 Visual Studio Dev Essentials 计划,或使用 Visual Studio 订阅 ID 登录。 下载与设备操作系统(x86、x64 (AMD64) 或 ARM64)匹配的版本。 在 Windows 服务器上,请参阅取消阻止文件下载,获取有关下载远程工具的帮助。 |
Visual Studio 2015 | 远程工具 | Visual Studio 2015 的远程工具可从 My.VisualStudio.com 获取。 如果出现提示,请加入免费的 Visual Studio Dev Essentials 计划,或使用 Visual Studio 订阅 ID 登录。 在 Windows 服务器上,请参阅取消阻止文件下载,获取有关下载远程工具的帮助。 |
Visual Studio 2013 | 远程工具 | Visual Studio 2013 文档中的下载页面 |
Visual Studio 2012 | 远程工具 | Visual Studio 2012 文档中的下载页面 |
Version | 链接 | 说明 |
---|---|---|
Visual Studio 2019 | 远程工具 | 兼容所有 Visual Studio 2019 版本。 下载与设备操作系统(x86、x64 (AMD64) 或 ARM64)匹配的版本。 在 Windows 服务器上,请参阅取消阻止文件下载,获取有关下载远程工具的帮助。 有关最新版远程工具的信息,请打开 Visual Studio 2022 文档。 |
Visual Studio 2017 | 远程工具 | 兼容所有 Visual Studio 2017 版本。 下载与设备操作系统(x86、x64 (AMD64) 或 ARM64)匹配的版本。 在 Windows 服务器上,请参阅取消阻止文件下载,获取有关下载远程工具的帮助。 |
Visual Studio 2015 | 远程工具 | Visual Studio 2015 的远程工具可从 My.VisualStudio.com 获取。 如果出现提示,请加入免费的 Visual Studio Dev Essentials 计划,或使用 Visual Studio 订阅 ID 登录。 在 Windows 服务器上,请参阅取消阻止文件下载,获取有关下载远程工具的帮助。 |
Visual Studio 2013 | 远程工具 | Visual Studio 2013 文档中的下载页面 |
Visual Studio 2012 | 远程工具 | Visual Studio 2012 文档中的下载页面 |
可以通过将 msvsmon.exe 复制到远程计算机,而不是安装远程工具来运行远程调试器。 但是,远程调试器配置向导 (rdbgwiz.exe) 仅在安装远程工具时才可用。 如果要将远程调试器作为服务运行,则可能需要使用向导进行配置。 有关详细信息,请参阅(可选)将远程调试器配置为服务。
注意
- 若要在 ARM 设备上调试 Windows 10 或更高版本应用,请使用 ARM64,它可用于最新版本的远程工具。
- 若要在 Windows RT 设备上调试 Windows 10 应用,请使用 ARM,它仅在 Visual Studio 2015 远程工具下载中可用。
- 若要在 ARM64 操作系统上调试 x64 应用程序,请运行随 ARM64 远程工具一起安装的 x64 msvsmon.exe。
要求
Supported Operating Systems
远程计算机运行的是下列操作系统之一:
Windows 11
Windows 10(非手机版)
Windows 8 或 8.1(非手机版)
Windows 7 Service Pack 1
Windows 2016 Server
Windows Server 2012 或 Windows Server 2012 R2
Windows Server 2008 Service Pack 2、Windows Server 2008 R2 Service Pack 1
注意
Windows Phone 需要 USB 连接才能进行调试(无需远程工具)。
支持的硬件配置
1.6 GHz 或更快的处理器
1 GB 的 RAM(如果在虚拟机上运行则需 1.5 GB)
1 GB 的可用硬盘空间
5400 RPM 硬盘驱动器
DirectX 9 支持的视频卡,可在 1024 x 768 或更高版本的显示分辨率下运行
网络配置
远程计算机与 Visual Studio 计算机必须通过网络、工作组、家庭组或其他通过以太网电缆直接连接的方式连接在一起。 不支持在通过代理连接的两台计算机之间进行调试。 不建议通过高延迟或低带宽连接(如拨号 Internet)或跨国家/地区的 Internet 进行调试,否则可能会导致调试失败或速度过慢。
(可选)从文件共享运行远程调试器
可以在已安装 Visual Studio Community、Professional 或 Enterprise 的计算机上找到远程调试器 (msvsmon.exe)。 在某些方案中,设置远程调试的最简便方法是从文件共享运行远程调试器 (msvsmon.exe)。 有关使用限制,请参阅远程调试器的“帮助”页(远程调试器中的“帮助”>“使用情况”)。
在与你的 Visual Studio 版本匹配的目录中找到 msvsmon.exe:
Program Files\Microsoft Visual Studio 17.0\Common7\IDE\Remote Debugger\x64\msvsmon.exe
Program Files\Microsoft Visual Studio 17.0\Common7\IDE\Remote Debugger\x86\msvsmon.exe
Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Remote Debugger\x64\msvsmon.exe
Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Remote Debugger\x86\msvsmon.exe
在 Visual Studio 计算机上共享“Remote Debugger”文件夹。
在远程计算机上,从共享文件夹运行 msvsmon.exe。 请按照设置说明操作。
提示
有关命令行安装和命令行参考,请参阅 msvsmon.exe 的“帮助”页,方法是在安装了 Visual Studio 的计算机上的命令行中键入 (或转到远程调试器中的“帮助”msvsmon.exe /?
“使用情况”)。
设置远程调试器
在远程计算机上,从“开始”菜单中查找并启动“远程调试器” 。
如果你没有远程计算机的管理权限,请右键单击“远程调试器”应用,然后选择“以管理员身份运行” 。 否则,正常启动即可。
如果打算附加到以管理员身份运行或在其他用户帐户(如 IIS)下运行的进程,请右键单击“远程调试器”应用,然后选择“以管理员身份运行” 。 有关详细信息,请参阅以管理员身份运行远程调试器。
首次启动远程调试器时(或在配置它之前),会显示“远程调试配置”向导。
在大多数情况下,请选择“下一步”,直到最后到达该向导的“配置 Windows 防火墙”页。
如果未安装 Windows Web 服务 API(仅会在 Windows Server 2008 R2 上发生这种情况),请选择“安装”按钮。
请至少选择一种要对其使用远程工具的网络类型。 如果这些计算机通过域连接,则必须选择第一项。 如果这些计算机通过工作组或家庭组连接,请根据需要选择第二或第三项。
接下来,选择“完成”以启动远程调试器。
接下来,选择“配置远程调试”以启动远程调试器。
配置完成后,将显示“远程调试器”窗口。
远程调试器正在等待连接。 使用显示的服务器名称和端口号在 Visual Studio 中设置远程连接配置。
若要停止远程调试器,请选择“文件”“退出” 。 你可以从“开始”菜单或通过以下命令行重新启动它:
<Remote debugger installation directory>\msvsmon.exe
配置远程调试器
首次启动后,你可以更改远程调试器的部分配置。
如果需要为其他用户添加权限以连接到远程调试器,请选择“工具”>“权限”。 你必须拥有管理员特权才能授予或拒绝权限。
重要
可以在其他用户帐户(不同于你在 Visual Studio 计算机上使用的用户帐户)下运行远程调试器,但你必须将该用户帐户添加到远程调试器权限中。
或者,你可以从具有 /allow <username> 参数:msvsmon /allow username@computer< 的命令行启动远程调试器。
如果需要为远程工具更改身份验证模式或端口号,或指定超时值:选择“工具”>“选项”。
有关默认使用的端口号的列表,请参阅远程调试器端口分配。
警告
可以选择在“无身份验证”模式下运行远程工具,但强烈建议不要使用此模式。 在此模式下运行时,无法保证网络安全。 只有在确认网络不会遇到恶意通信的情况下,才可选择“无身份验证”模式。
(可选)将远程调试器配置为服务
对于在 ASP.NET 和其他服务器环境中调试,你必须以管理员身份运行远程调试器;或者,如果你希望它始终运行,则将远程调试器作为服务运行。
如果要将远程调试器配置为服务,请执行以下步骤。
找到 “远程调试器配置向导”(rdbgwiz.exe)。 (这是独立于远程调试器的应用程序。)仅在你安装远程工具后,它才可用。 它不与 Visual Studio 一起安装。
开始运行配置向导。 当第一页出现时,单击“下一步” 。
勾选“将 Visual Studio 远程调试器作为服务运行”复选框。
添加用户帐户的名称和密码。
可能需要在“开始”页或窗口(查找“本地安全策略”[secpol.msc])(或在命令提示符处键入 secpol)向此帐户添加“作为服务登录”用户权限。 当显示窗口时,双击“用户权限分配” ,然后在右窗格中找到 “作为服务登录”。 双击该选项。 将用户帐户添加到“属性”窗口,然后点击“确定”) 。 单击 “下一步” 。
选择你希望远程工具与之通信的网络类型。 必须至少选择一种网络类型。 如果这些计算机通过域连接,则应选择第一项。 如果这些计算机通过工作组或家庭组连接,则应选择第二或第三项。 单击 “下一步” 。
如果可以启动服务,则会显示 “你已成功完成 Visual Studio 远程调试器配置向导”。 如果无法启动服务,则会显示“未能完成 Visual Studio 远程调试器配置向导” 。 此页还提供了为使服务正常启动要遵循的一些提示。
单击 “完成” 。
此时,远程调试器正作为服务运行。 可以通过转到“控制面板”>“服务”并找到 “Visual Studio 远程调试器”来对此进行验证。
可以从“控制面板”>“服务”停止和启动远程调试器服务。
使用远程符号设置调试
你应能够使用你在 Visual Studio 计算机生成的符号调试你的代码。 使用本地符号时远程调试器的性能更佳。 如果必须使用远程符号,则需要告诉远程调试监视器以查找远程计算机上的符号。
你可以使用以下 msvsmon 命令行开关将远程符号用于托管代码:Msvsmon /FallbackLoadRemoteManagedPdbs
有关详细信息,请参阅远程调试帮助(在远程调试器窗口中,按 F1 或依次单击“帮助”“用法”)。