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

01 下载和安装远程工具

在远程设备或服务器,你想要调试,而非 Visual Studio 计算机,下载并安装远程工具的正确版本从下表中的链接。

  • 下载最新版本的 Visual Studio 远程工具。 最新的远程工具版本兼容使用早期的 Visual Studio 版本,但早期的远程工具版本不是与更高版本的 Visual Studio 版本兼容。 (例如,如果使用 Visual Studio 2017,下载适用于 Visual Studio 2017 远程工具的最新的更新。 在此方案中,不要下载远程工具的 Visual Studio 2019。)
  • 下载的远程工具使用相同的体系结构在计算机安装它们。 例如,如果你想要调试远程计算机运行 64 位操作系统上的 32 位应用程序,安装 64 位远程工具。
Version 链接 说明

Visual Studio 2019

远程工具

与所有 Visual Studio 2019 版本兼容。 下载匹配您设备的操作系统 (x 86、 x64、 或 ARM64) 的版本。 在 Windows 服务器上,请参阅取消阻止文件下载下载远程工具的帮助。
Visual Studio 2017 远程工具 与所有 Visual Studio 2017 版本兼容。 下载匹配您设备的操作系统 (x 86、 x64、 或 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 远程工具下载中可用。

02 支持的操作系统

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

  • Windows 10 (而不是 phone)

  • Windows 8 或 8.1 (而不是 phone)

  • Windows 7 Service Pack 1

  • Windows Server 2016

  • Windows Server 2012 或 Windows Server 2012 R2

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

Windows Phone 需要通过 USB 连接调试 (不需要远程工具)

03 支持的硬件配置
  • 1.6 GHz 或更快的处理器

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

  • 1 GB 的可用硬盘空间

  • 5400 RPM 硬盘驱动器

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

04 网络配置

远程计算机与 Visual Studio 计算机必须通过网络、工作组、家庭组或其他通过以太网电缆直接连接的方式连接在一起。 不支持调试通过代理连接的两台计算机之间。 调试通过高延迟或低带宽连接,例如拨号 Internet,或通过 Internet 跨国家/地区不建议并可能会失败或很令人无法接受慢。

05 (可选)若要从文件共享运行远程调试器
可以在已安装 Visual Studio Community、 Professional 或 Enterprise 的计算机上找到远程调试器 (msvsmon.exe)。

在某些情况下,设置远程调试的最简单方法是从文件共享运行远程调试器 (msvsmon.exe)。 有关使用情况的限制,请参阅远程调试器的帮助页 (帮助 > 用法远程调试器中)。

  1. 查找msvsmon.exe匹配你的 Visual Studio 版本的目录中:

    Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Remote Debugger\x86\msvsmon.exe

    Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Remote Debugger\x64\msvsmon.exe

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

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

命令行安装和命令行参考,请参阅的帮助页msvsmon.exe通过键入msvsmon.exe /?在安装了 Visual studio 计算机上的命令行中 (或转到帮助 > 用法远程调试器中)。

06 设置远程调试器
  1. 在远程计算机上从开始菜单中查找和启动远程调试器。

    如果在远程计算机上没有管理权限,请右击远程调试器应用,然后选择以管理员身份运行。 否则,只需正常启动它即可。

    如果想要附加到正在运行以管理员身份,或不同的用户下运行的进程帐户 (如 IIS) 中,右键单击远程调试器应用,然后选择以管理员身份运行. 有关详细信息,请参阅以管理员身份运行远程调试器

  2. 第一次启动远程调试器 (或之前已配置),远程调试配置对话框随即出现。

  3. 如果 Windows Web 服务 API 未安装,这种情况发生,仅在 Windows Server 2008 R2 上,选择安装按钮。

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

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

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

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

若要停止远程调试器,请选择文件 > 退出。 您可以重新启动它从启动菜单中,或从命令行:

<Remote debugger installation directory>\msvsmon.exe

配置远程调试器

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

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

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

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

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

    默认情况下使用的端口号的列表,请参阅Remote Debugger Port Assignments

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

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

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

如果你想要配置远程调试器作为服务,请按照下列步骤。

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

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

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

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

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

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

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

  7. 单击 “完成” 。

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

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

08 设置使用远程符号进行调试

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

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

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

其他技术请参考

Visual Studio 调试系列11 远程调试的更多相关文章

  1. Visual Studio 调试系列12 远程调试部署在远程计算机IIS上的ASP.NET应用程序

    系列目录     [已更新最新开发文章,点击查看详细] 要调试已部署到IIS的ASP.NET应用程序,请在部署应用程序的计算机上安装并运行远程工具,然后从Visual Studio附加到正在运行的应用 ...

  2. Visual Studio 2012/2010/2008 远程调试

    第一步:将你本地的账号密码设置成跟服务器一样,因为远程调试也是需要用户凭证的. 第二步:将vs工具里的Remote Debugger文件夹拷贝到目标机器.大致的目录应该是:D:\Program Fil ...

  3. Visual Studio 调试系列2 基本调试方法

    系列目录     [已更新最新开发文章,点击查看详细] 在 Visual Studio 上下文中,当调试应用时,这通常意味着你在附加了调试器的情况下(即在调试器模式下)运行应用程序. 执行此操作时,调 ...

  4. WebApi-路由机制 Visual Studio 2015中的常用调试技巧分享

    WebApi-路由机制   一.WebApi路由机制是什么? 路由机制通俗点来说:其实就是WebApi框架将用户在浏览器中输入的Url地址和路由表中的路由进行匹配,并根据最终匹配的路由去寻找并匹配相应 ...

  5. visual studio code(vscode) 调试php(转)

    原文链接:http://www.cnblogs.com/CLR010/p/5276077.html visual studio code(vscode) 调试php   1.下载vscode (vis ...

  6. Visual Studio工具栏中无法选择调试设备

    Visual Studio工具栏中无法选择调试设备 在Visual Studio工具栏中,默认显示已经识别的设备.用户可以从中选择对应的设备,进行调试和部署App.但是由于误操作,可能导致该选项丢失. ...

  7. 64 位win 7或windows 8下的visual studio不能连接Oracle数据库调试网站的问题

    在64 位win 7或windows 8系统下,visual studio直接F5运行网站调试,你会发现不能连接Oracle数据库,会报一个“ORA-06413: Connection not ope ...

  8. [转]使用 Minidumps 和 Visual Studio .NET 进行崩溃后调试

    本文关键字:Minidumps, Windows, SEH, VisualC, .NET 摘要 本文讲述了 minidumps 是怎样工作的.当你的程序崩溃的时候应该如何生成它们.以及如何在 Visu ...

  9. Visual Studio 2013 如何在停止调试Web程序后阻止IIS Express关闭

    vs2013 调试项目的时候,当停止调试的时候,端口就被断了.之前以为是IIS那边的控制问题,但是其他并行的项目运行都没有出现这种情况. 最初也没在意,直到现在实在忍受不了了,每次重开也太烦了.就去各 ...

随机推荐

  1. 超详细Pycharm部署项目视频教程

    在实际的工作中,不管你是开发.测试还是运维人员,都应该掌握的一项技能就是部署项目,简单说就是把项目放到服务器中,使其正常运行.今天猪哥就以咱们的微信机器人项目为例子,带大家来部署一下项目.本文将会详细 ...

  2. 『月之谜 数位dp』

    月之谜 Description 打败了Lord lsp 之后,由 于lqr 是一个心地善良的女孩 子,她想净化Lord lsp 黑化的 心,使他变回到原来那个天然 呆的lsp--在倒霉的光之英 雄ap ...

  3. kali渗透综合靶机(五)--zico2靶机

    kali渗透综合靶机(五)--zico2靶机 靶机地址:https://www.vulnhub.com/series/zico2,137/#modal210download 一.主机发现 1.netd ...

  4. C# 去除数字中多于的0

    decimal i = decimal.Parse(Console.ReadLine()); Console.WriteLine((i).ToString(")); Console.Writ ...

  5. linux系统下安装配置Jenkins

    准备java 环境 安装java sdk yum -y install java 验证是否安装成功 java -version 下载安装jenkins 官网:https://wiki.jenkins- ...

  6. 【入门篇】前端框架Vue.js知识介绍

    一.Vue.js介绍 1.什么是MVVM? MVVM(Model-View-ViewModel)是一种软件架构设计模式,它源于MVC(Model-View-Controller)模式,它是一种思想,一 ...

  7. anaconda配置清华大学开源软件镜像

    配置镜像在anaconda安装好之后,默认的镜像是官方的,由于官网的镜像在境外,使用国内的镜像能够加快访问的速度.这里选择了清华的的镜像.镜像的地址如下:tuna.Anaconda 安装包可以到 ht ...

  8. emacs cedet

    用emacs写c或者c++代码用的插件的配置.功能是能够代码补齐. (require 'package) (package-initialize) (add-to-list'package-archi ...

  9. 目标检测论文解读1——Rich feature hierarchies for accurate object detection and semantic segmentation

    背景 在2012 Imagenet LSVRC比赛中,Alexnet以15.3%的top-5 错误率轻松拔得头筹(第二名top-5错误率为26.2%).由此,ConvNet的潜力受到广泛认可,一炮而红 ...

  10. CRT&EXCRT学习笔记

    非扩展 用于求解线性同余方程组 ,其中模数两两互质 . 先来看一看两个显然的定理: 1.若 x \(\equiv\) 0 (mod p) 且 y \(\equiv\) 0 (mod p) ,则有 x+ ...