场景:

客户的计算机运行程序出现异常,由于办公场所不在一起,无法直接在客户的机器上调试。此时希望可以直接在开发人员的计算机(本地机器)上远程调试客户机上的软件。


假设:

  • 本地机器的系统账户为 GIS,密码为 111

  • 客户机器的计算机名为 Client

  • 要调试的程序名称为 test.exe


解决方法:

1、客户机器配置

  • 新建与本地机器一致的系统账户

    • 要保证账户和密码一致

    • 在控制面板 -> 用户账户 -> 添加GIS账户,并设置密码为111

    • 切换到GIS账户中

  • 开启远程服务

    • 控制面板 -> 管理工具 -> 服务 -> 开启Remote Desktop Service服务

  • 设置本地安全策略

    • 控制面板 -> 管理工具 -> 本地安全策略 -> 本地策略 -> 安全选项 -> 网络访问:本地账户的共享和安全模型 -> 设置为“经典 - 对本地用户进行身份验证,不改变其本来身份”

  • 关闭防火墙

    • 控制面板 -> Windows防火墙 -> 打开或关闭Windows防火墙 -> 关闭防火墙

  • 本地新建文件夹bin,共享文件夹

    • 控制面板 -> 用户账户 -> 启动Guest账户

    • 控制面板 -> 家庭组 -> 更改高级共享设置 -> 家庭或工作 -> 密码保护的共享 -> 关闭密码保护共享

    • 右键点击bin文件夹 -> 特定用户 -> 添加Guest用户 -> 修改“权限级别为读/写” -> 共享

  • 打开本地机器共享的Remote Debugger文件夹,启动适当平台下的msvsmon.exe

    • 若出现提示“此计算机上的Windows防火墙当前阻止了远程调试。远程调试要求允许调试器从网络接收信息。。。”,请勾选“取消禁止从任何计算机进行远程调试的限制”。

2、本地机器配置

  • 开启远程服务

    • 控制面板 -> 管理工具 -> 服务 -> 开启Remote Desktop Service服务

  • 设置本地安全策略

    • 控制面板 -> 管理工具 -> 本地安全策略 -> 本地策略 -> 安全选项 -> 网络访问:本地账户的共享和安全模型 -> 设置为“经典 - 对本地用户进行身份验证,不改变其本来身份”

  • 共享Remote Debugger文件夹

    • 文件夹在VS安装目录下的“Common7\IDE”中

    • 控制面板 -> 用户账户 -> 启动Guest账户

    • 控制面板 -> 家庭组 -> 更改高级共享设置 -> 家庭或工作 -> 密码保护的共享 -> 关闭密码保护共享

    • 右键点击bin文件夹 -> 特定用户 -> 添加Guest用户 -> 修改“权限级别为读/写” -> 共享

  • VS中设置待调试项目的属性为远程调试

    • 项目属性 -> 生成 -> 输出 -> 输出路径 -> 设置为客户机器的共享文件夹名称

      \\Client\bin\
    • 项目属性 -> 调试 -> 启动 -> 启动外部程序 -> 设置为

      \\Client\bin\test.exe
    • 项目属性 -> 调试 -> 启动选项 -> 工作目录 -> 设置为

      \\Client\bin\
    • 项目属性 -> 调试 -> 启动选项 -> 使用远程计算机 -> 设置为

      Client
  • 启动调试,就可以开始调试了

    • 客户机器上自动启动test.exe

    • 客户机器上的远程调试监视器显示“已连接”

说明
  • 该解决方法的客户机器及本地机器都是Win7 64位操作系统,其他系统可参考处理。

  • 该解决方法只在VS2010中测试,其他版本可参考处理。

  • 当然,这个方法的根本前提是两台机器可以互相ping通。

调试连接错误总结:

错误:“Microsoft Visual Studio 远程调试监视器”(MSVSMON.EXE) 似乎没有在远程计算机上运行。

解决方案:

拷贝:本机vs2010安装目录下(D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger)

的Remote Debugger 目录全部拷贝到远程机器上面,

然后运行远程机器Remote Debugger目录下的MSVSMON.EXE程序到远程机器上面;

注意:如果本机程序是X86的,则运行X86目录下面的MSVSMON.EXE程序即可

参考文档:http://my.oschina.net/u/2279991/blog/383694

VS2010远程调试C#程序的更多相关文章

  1. VS2010 win7 QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序

    下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip, 不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0 ...

  2. java远程调试(断点)程序/tomcat( eclipse远程调试Tomcat方法)

    tomcat远程调试: 1.Linux中配置tomcat在catalina.sh中添加如下CATALINA_OPTS="-Xdebug  -Xrunjdwp:transport=dt_soc ...

  3. 亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)

    下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0- ...

  4. MAC使用IDA PRO远程调试LINUX程序

    1 背景 在学习Linux系统上的一些漏洞知识的时候,往往需要进行“实地测试”,但是在Linux系统上进行调试并不太方便,因为LINUX自带的GDB调试工具真的不太人性化,即使有GDBTUI之类的“伪 ...

  5. 远程调试Java程序

    java 可以以调试模式启动,启动后可以使用 jdb 对程序进行调试.以调试模式启动,需要加入以下参数: java -Xdebug -Xrunjdwp:transport=dt_socket,addr ...

  6. Eclipse远程调试应用程序

    第一步,在应用程序的配置文件run.xml中加入下面的配置项,启动应用程序: <target name="run" depends="checkBuilderFai ...

  7. vs2010远程调试断点无效问题

    ps:本人按照下面的方式设置成功,个人感觉写的也比较清楚 来源:http://www.cnblogs.com/OpenCoder/archive/2010/02/17/1668983.html   v ...

  8. 使用IDEA远程调试SpringBoot程序

    远程调试就是服务端程序运行在一台远程服务器上,我们在本地服务端的代码中设置断点(本地的代码必须与远端一致),进行调试.每当有请求到达远程服务器时能够在本地知道远端程序的运行情况. 1.点击Run 选择 ...

  9. VS2010 远程调试

    1.在客户端电脑建一个账户,账户名和密码和调试端的账户密码一样 2.在客户端电脑进入 管理工具-本地安全策略-本地策略-安全选项 网络访问:本地账户的共享和安全模式”,改为“经典-本地用户以自己的身份 ...

随机推荐

  1. Python控制语句执行流程

    if语句: if<条件>:#条件之后必须有“:”.  <语句> if语句的三元运算符: <表达式1>if<条件>else<表达式2>:其语义 ...

  2. AIX中物理卷管理

    1.物理卷管理   1.1物理卷区域的分布 按照磁头在硬盘上的读写速率不同可以把硬盘划分成几个不同级别的区域.因此逻辑卷对应的PP在哪一个级别的区域上,对逻辑卷的读写速率影响很大. 硬盘的截面分为5个 ...

  3. HBASE工作原理

    如上图所示:首先我们需要知道 HBase 的集群是通过 Zookeeper 来进行机器之前的协调,也就是说 HBase Master 与 Region Server 之间的关系是依赖 Zookeepe ...

  4. vue修改富文本中的元素样式

    富文本编辑器目前应用很广泛,而有时候我们想要对其中的一些元素的样式进行修改,就会遇到问题. 首先,直接修改是不可行的,因为是用v-html标签进行渲染的,无法直接获取到. 在修改的时候,一般是按标签进 ...

  5. numpy模块、matplotlib模块、pandas模块

    目录 1. numpy模块 2. matplotlib模块 3. pandas模块 1. numpy模块 numpy模块的作用 用来做数据分析,对numpy数组(既有行又有列)--矩阵进行科学计算 实 ...

  6. 【NOIP2012模拟11.1】塔(加强)

    题目 玩完骰子游戏之后,你已经不满足于骰子游戏了,你要玩更高级的游戏. 今天你瞄准了下述的好玩的游戏: 首先是主角:塔.你有N座塔一列排开.每座塔各自有高度,有可能相等. 这个游戏就不需要地图了. 你 ...

  7. electron-vue ipcRenderer.on() 调用多次

    methods: { isSave (ev) { this.localFileUrl = ev.localFileUrl // 本地的路径 ipcRenderer.send('save-dialog' ...

  8. javascript基本知识图解

    转载自 网络博客 变量 数据类型 javascript运算符 javascript流程语句 javascript 数组 javascript window对象 javascript DOM javas ...

  9. 【leetcode】Path Sum IV

    If the depth of a tree is smaller than 5, then this tree can be represented by a list of three-digit ...

  10. 25.复杂链表的复制(python)

    题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head.(注意,输出结果中请不要返回参数中的节点引用,否 ...