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)。 有关使用限制,请参阅远程调试器的“帮助”页(远程调试器中的“帮助”>“使用情况”)。

  1. 在与你的 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

  2. 在 Visual Studio 计算机上共享“Remote Debugger”文件夹。

  3. 在远程计算机上,从共享文件夹运行 msvsmon.exe。 请按照设置说明操作。

提示

有关命令行安装和命令行参考,请参阅 msvsmon.exe 的“帮助”页,方法是在安装了 Visual Studio 的计算机上的命令行中键入 (或转到远程调试器中的“帮助”msvsmon.exe /?“使用情况”)。

设置远程调试器

  1. 在远程计算机上,从“开始”菜单中查找并启动“远程调试器” 。

    如果你没有远程计算机的管理权限,请右键单击“远程调试器”应用,然后选择“以管理员身份运行” 。 否则,正常启动即可。

    如果打算附加到以管理员身份运行或在其他用户帐户(如 IIS)下运行的进程,请右键单击“远程调试器”应用,然后选择“以管理员身份运行” 。 有关详细信息,请参阅以管理员身份运行远程调试器

  2. 首次启动远程调试器时(或在配置它之前),会显示“远程调试配置”向导。

    在大多数情况下,请选择“下一步”,直到最后到达该向导的“配置 Windows 防火墙”页。

    远程调试器配置的屏幕截图。

    远程调试器配置的屏幕截图。

    如果未安装 Windows Web 服务 API(仅会在 Windows Server 2008 R2 上发生这种情况),请选择“安装”按钮。

  3. 请至少选择一种要对其使用远程工具的网络类型。 如果这些计算机通过域连接,则必须选择第一项。 如果这些计算机通过工作组或家庭组连接,请根据需要选择第二或第三项。

    接下来,选择“完成”以启动远程调试器。

    接下来,选择“配置远程调试”以启动远程调试器。

  4. 配置完成后,将显示“远程调试器”窗口

    远程调试器窗口的屏幕截图

    远程调试器窗口的屏幕截图

    远程调试器正在等待连接。 使用显示的服务器名称和端口号在 Visual Studio 中设置远程连接配置。

若要停止远程调试器,请选择“文件”“退出” 。 你可以从“开始”菜单或通过以下命令行重新启动它:

<Remote debugger installation directory>\msvsmon.exe

配置远程调试器

首次启动后,你可以更改远程调试器的部分配置。

  • 如果需要为其他用户添加权限以连接到远程调试器,请选择“工具”>“权限”。 你必须拥有管理员特权才能授予或拒绝权限。

    重要

    可以在其他用户帐户(不同于你在 Visual Studio 计算机上使用的用户帐户)下运行远程调试器,但你必须将该用户帐户添加到远程调试器权限中。

    或者,你可以从具有 /allow <username> 参数:msvsmon /allow username@computer< 的命令行启动远程调试器。

  • 如果需要为远程工具更改身份验证模式或端口号,或指定超时值:选择“工具”>“选项”。

    有关默认使用的端口号的列表,请参阅远程调试器端口分配

    警告

    可以选择在“无身份验证”模式下运行远程工具,但强烈建议不要使用此模式。 在此模式下运行时,无法保证网络安全。 只有在确认网络不会遇到恶意通信的情况下,才可选择“无身份验证”模式。

(可选)将远程调试器配置为服务

对于在 ASP.NET 和其他服务器环境中调试,你必须以管理员身份运行远程调试器;或者,如果你希望它始终运行,则将远程调试器作为服务运行。

如果要将远程调试器配置为服务,请执行以下步骤。

  1. 找到 “远程调试器配置向导”(rdbgwiz.exe)。 (这是独立于远程调试器的应用程序。)仅在你安装远程工具后,它才可用。 它不与 Visual Studio 一起安装。

  2. 开始运行配置向导。 当第一页出现时,单击“下一步” 。

  3. 勾选“将 Visual Studio 远程调试器作为服务运行”复选框。

  4. 添加用户帐户的名称和密码。

    可能需要在“开始”页或窗口(查找“本地安全策略”[secpol.msc])(或在命令提示符处键入 secpol)向此帐户添加“作为服务登录”用户权限。 当显示窗口时,双击“用户权限分配” ,然后在右窗格中找到 “作为服务登录”。 双击该选项。 将用户帐户添加到“属性”窗口,然后点击“确定”) 。 单击 “下一步”

  5. 选择你希望远程工具与之通信的网络类型。 必须至少选择一种网络类型。 如果这些计算机通过域连接,则应选择第一项。 如果这些计算机通过工作组或家庭组连接,则应选择第二或第三项。 单击 “下一步”

  6. 如果可以启动服务,则会显示 “你已成功完成 Visual Studio 远程调试器配置向导”。 如果无法启动服务,则会显示“未能完成 Visual Studio 远程调试器配置向导” 。 此页还提供了为使服务正常启动要遵循的一些提示。

  7. 单击 “完成”

    此时,远程调试器正作为服务运行。 可以通过转到“控制面板”>“服务”并找到 “Visual Studio 远程调试器”来对此进行验证。

    可以从“控制面板”>“服务”停止和启动远程调试器服务。

使用远程符号设置调试

你应能够使用你在 Visual Studio 计算机生成的符号调试你的代码。 使用本地符号时远程调试器的性能更佳。 如果必须使用远程符号,则需要告诉远程调试监视器以查找远程计算机上的符号。

你可以使用以下 msvsmon 命令行开关将远程符号用于托管代码:Msvsmon /FallbackLoadRemoteManagedPdbs

有关详细信息,请参阅远程调试帮助(在远程调试器窗口中,按 F1 或依次单击“帮助”“用法”)。