VS远程调试

你可以调试已部署在另一台计算机的 Visual Studio 应用程序。 要进行此操作,可使用 Visual Studio 远程调试器。

此处的信息适用于 Windows 桌面应用程序和 ASP.NET 应用程序。 有关远程调试 Windows 应用商店应用程序和 Azure 应用程序的信息,请参阅windows 应用商店和 azure 应用上的远程调试

获取远程工具

您可以直接在要调试的设备或服务器上下载远程工具,也可以从安装了 Visual Studio 的主机获取远程工具。

下载和安装远程工具

  1. 在要调试的设备或服务器计算机(而不是运行 Visual Studio 的计算机)上,获取正确的远程工具版本。

  2. 在 "下载" 页上,选择与你的操作系统(x86、x64 或 ARM 版本)匹配的工具版本,然后下载远程工具。

    重要

    建议安装与 Visual Studio 版本匹配的最新版本的远程工具。 不推荐使用不匹配的版本。

    此外,你必须安装与你要在其上安装的操作系统具有相同体系结构的远程工具。 换句话说,如果要在运行64位操作系统的远程计算机上调试32位应用程序,则必须在远程计算机上安装该远程工具的64位版本。

  3. 完成下载可执行文件后,请按照说明在远程计算机上安装该应用程序。 请参阅安装说明

如果尝试将远程调试器(msvsmon)复制到远程计算机并运行它,请注意,仅当你下载这些工具时才安装远程调试器配置向导rdbgwiz.exe),并且你可能需要使用向导进行配置,尤其是在你希望远程调试器作为服务运行时。 有关详细信息,请参阅下面的"(可选)将远程调试器配置为以下服务"

从文件共享运行远程调试器

你可以在已安装 Visual Studio 2015 社区版、专业版或企业版的计算机上找到远程调试器(msvsmon)。 在许多情况下,设置远程调试的最简单方法是从文件共享运行远程调试器(msvsmon)。 有关使用限制,请参阅远程调试器的帮助页(远程调试器中的帮助/使用情况)。

  1. 在与你的 Visual Studio 版本匹配的目录中查找msvsmon。 对于 Visual Studio 2015:

    Program Files\Microsoft Visual Studio 14.0 \ Common7\ide\remote debugger Debugger\x86\msvsmon.exe

    Program Files\Microsoft Visual Studio 14.0 \ Common7\ide\remote debugger Debugger\x64\msvsmon.exe

  2. 在 Visual Studio 计算机上共享远程调试器文件夹。

  3. 在远程计算机上,运行msvsmon。 按照安装说明进行操作。

提示

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

Supported Operating Systems

远程计算机运行的是下列操作系统之一:

  • Windows 10

  • Windows 8 或 8.1

  • Windows 7 Service Pack 1

  • Windows Server 2012 或 Windows Server 2012 R2

  • Windows Server 2008 Service Pack 2、Windows Server 2008 R2 Service Pack 1

支持的硬件配置

  • 1.6 GHz 或更快的处理器

  • 1 GB 的 RAM(如果在虚拟机上运行则需 1.5 GB)

  • 1 GB 的可用硬盘空间

  • 5400 RPM 硬盘驱动器

  • DirectX 9 支持的视频卡,可在 1024 x 768 或更高版本的显示分辨率下运行

网络配置

远程计算机与 Visual Studio 计算机必须通过网络、工作组、家庭组或其他通过以太网电缆直接连接的方式连接在一起。 不支持通过 Internet 进行调试。

设置远程调试器

必须在远程计算机上具有管理权限

  1. 定位远程调试器应用程序。 (打开 "开始" 菜单并搜索 "远程调试器"。)

    如果在远程服务器上运行远程调试器,则可以右键单击远程调试器应用,然后选择 "以管理员身份运行" (或者,你可以将远程调试器作为服务运行)。如果未在远程服务器上运行,只需正常启动。

  2. 首次启动远程工具时(或在配置之前),将显示 "远程调试配置对话框" 对话框。

    RemoteDebuggerConfWizardPage

  3. 如果未安装 Windows 服务 API (仅在 Windows Server 2008 R2 上发生),请选择 "安装" 按钮。

  4. 选择你想要在上面使用远程工具的网络类型。 必须至少选择一种网络类型。 如果这些计算机通过域连接,则必须选择第一项。 如果这些计算机通过工作组或家庭组连接,你需要视情况选择第二或第三项。

  5. 选择 "配置远程调试",配置防火墙并启动工具。

  6. 配置完成后,将显示远程调试器窗口。

    RemoteDebuggerWindow

    远程调试器正在等待连接。 记下显示的服务器名称和端口号,因为稍后要在 Visual Studio 中进行配置时需要用到它。

    完成调试并且需要停止远程调试器后,请单击窗口上的 "文件"/"退出"。 你可以从 "开始" 菜单或从命令行重新启动它:

    <Visual Studio 安装目录 > \Common7\IDE\Remote 调试器\< x86、x64 或 Appx\msvsmon.exe

配置远程调试器

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

  • 若要使其他用户能够连接到远程调试器,请选择 "工具"/"权限"。 你必须拥有管理员特权才能授予或拒绝权限。

    重要

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

    或者,你可以从命令行启动远程调试器,其中 /allow <用户名 > 参数: msvsmon/allow <[email protected]>

  • 若要更改身份验证模式或端口号,或为远程工具指定超时值:请选择 "工具"/"选项"。

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

    警告

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

可有可无将远程调试器配置为服务

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

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

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

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

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

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

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

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

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

  7. 单击 “完成”

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

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

远程调试 Visual C++ 项目

在下面的过程中,项目的名称和路径为 C:\remotetemp\MyMfc,远程计算机的名称为MJO

  1. 创建名为 mymfc 的 MFC 应用程序。

  2. 在应用程序中容易到达的地方设置断点,例如,在 MainFrm.cpp 中(位于 的开头) CMainFrame::OnCreate

  3. 在解决方案资源管理器中,右键单击项目,然后选择 "属性"。 打开“调试”选项卡。

  4. 将“要启动的调试器”更改为“远程 Windows 调试器”。

    RemoteDebuggingCPlus

  5. 对属性进行以下更改:

    表 2
    设置 “值”
    远程命令 C:\remotetemp\mymfc.exe
    工作目录 C:\remotetemp
    “远程服务器名称” MJO:portnumber
    连接 带 Windows 身份验证的远程访问
    调试器类型 仅限本机
    部署目录 C:\remotetemp。
    其他要部署的文件 C:\data\mymfcdata.txt。

    如果部署其他文件(可选),则该文件夹必须在两台计算机上都存在。

  6. 在解决方案资源管理器中,右键单击该解决方案,然后选择 " Configuration Manager"。

  7. 对于“调试”配置,请选中“部署”复选框。

    RemoteDebugCplusDeploy

  8. 开始调试("调试"/"启动调试" 或按F5)。

  9. 可执行文件会自动部署到远程计算机。

  10. 如果系统提示,请输入网络凭据以连接到远程计算机。

    所需的凭据特定于你的网络安全配置。 例如,在域计算机上,您可以选择一个安全证书或输入您的域名和密码。 在非域计算机上,可以输入计算机名称和有效的用户帐户名称(如MJO-DL\[email protected])以及正确的密码。

  11. 在 Visual Studio 计算机上,你应看到在断点处已停止执行。

    提示

    或者,你可以采用单独的步骤部署文件。 在“解决方案资源管理器”中,右键单击“mymfc”节点,然后选择“部署”。

    如果具有需要由应用程序使用的非代码文件,则需要将其包含在 Visual Studio 项目中。 为其他文件创建项目文件夹(在解决方案资源管理器中,单击 "添加/新建文件夹"。)然后,将文件添加到该文件夹(在解决方案资源管理器中,单击 "添加/现有项",然后选择文件。)。 在每个文件的“属性”页中,将“复制到输出目录”设置为“始终复制”。

使用远程符号设置调试

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

从 Visual Studio 2013 Update 2 开始,你可以使用以下 msvsmon 命令行开关来使用用于托管代码的远程符号:Msvsmon / /FallbackLoadRemoteManagedPdbs

有关详细信息,请参阅远程调试帮助(在远程调试器窗口中按F1 ,或单击 "帮助/用法")。 有关详细信息,可以参阅 Visual Studio 2012 和 2013 中的 .NET 远程符号加载更改

在 Windows 应用商店和 Azure 应用上进行远程调试

有关使用 Windows 应用商店应用进行远程调试的详细信息,请参阅从 Visual Studio 调试和测试远程设备上的 Windows 应用商店应用

有关在 Azure 上进行调试的信息,请参阅以下主题之一:

请参阅

在 Visual Studio 中进行调试
配置 Windows 防火墙以便进行远程调试
Remote Debugger Port Assignments
远程调试远程 IIS 计算机上的 ASP.NET
远程调试错误和疑难解答