您的位置:首页 > 编程语言 > C#

VS2010中C#实现远程调试功能(转)

2016-10-25 13:03 253 查看

0 背景说明

通常程序运行所在的计算机是客户终端工位机,多数情况下编写的程序需要连接设备共同调试。由于使用VS2010编写应用程序调试需要VS2010集成开发环境,若需要在每台客户机上都安装VS2010,这将大大增加计算机系统的安装难度,同时可维护性也会降低。因此在没有安装VS2010的计算机上实现调试功能就变得相当重要,本文主要介绍该远程调试的实现方法。

在介绍该实现方法前,首先引入两个名字:

本地计算机:公司工作人员持有,能够实现软件开发功能的计算机。

客户计算机:客户持有,连接设备进行检测操作的工位机。

1 流程控制



图1.1远程调试控制架构
在调试过程中需要进行设备控制操作,如开始检测等,该类操作主要在[客户计算机]上进行。为能同时调试源代码,最佳实现方式如图1.1所示,在[客户计算机]上实现远程控制[本地计算机]。

2 计算机设置

为正常实现在[客户计算机]上远程控制[本地计算机]和[本地计算机]能够在[客户计算机]上远程调试源码,请分别检查[本地计算机]、[客户计算机]的以下服务和设置:

启用服务中的TerminalServices服务实现远程功能;

按下述步骤更改用户策略:
运行gpedit.msc打开组策略管理器;
依次点击:本地计算机→策略→计算机配置→Windows设置→安全设置→本地策略→安全选项;

将网络访问:本地账户的共享和安全模式选项设置为经典-本地用户已自己的身份验证

3 在[客户计算机]运行远程调试器

从[本地计算机]上拷贝远程调试器到[客户计算机],远程调试器分为x86版本和x64版本,如图3.1所示。



图3.1开始菜单中远程调试器位置
点击图3.1中的VS2010远程调试器文件夹,可将整个Remote Debugger文件夹拷贝到[客户计算机]上,如图3.2所示。



图3.2远程调试文件夹
选择正确的版本,如选择x86版本运行远程调试器。如图3.3所示,在X86文件夹中能够看到文件"msvsmon.exe",该应用程序为VS2010远程调试工具,在[客户计算机]双击运行即可,如图3.4所示。



图3.3远程调试器msvsmon.exe



图3.4[客户计算机]上VS2010远程调试器启动

4 用户配置

同时在[本地计算机]、[客户计算机]上设置相同的用户名和密码,笔者在调试过程中在该两台计算机上均使用管理员用户"Administrator",且设置相同的用户密码"fofen"。

该步骤也可以通过设置相同管理员权限的其他用户来实现,但要求[本地计算机]、[客户计算机]上的用户名和密码必须相同,该操作比较繁琐,本文不介绍该方法。

5 [客户计算机]共享文件夹

在[客户计算机]上共享一个具有读写权限的文件夹,注意选择允许"完全控制"权限。如图5.1所示。



图5.1共享文件夹权限设置

6 [本地计算机]VS2010工程设置

6.1设置工程生成路径

如图6.1所示,设置生成项目工程的路径为第5小节中[客户计算机]中共享的Bin文件夹,该处使用[客户计算机]的网络名称,当然也可以输入IP地址。



图6.1项目工程生成路径设置

6.2设置工程调试信息



图6.2项目工程调试信息设置
选择"属性"中的调试选项卡,对"启动操作"中的启动外部程序一项进行编辑,该项内容由远程机IP(或网络名称)及指向共享文件夹中的应用程序路径组成。对"启动选项"中的工作目录一项进行编辑,该项内容由远程机IP(或网络名称)及工程所在路径组成。勾选使用远程计算机,该项内容填入远程机IP或网络名称。如图6.2所示。

提示:可现在"网上邻居"中找到[客户计算机]的共享文件夹,将其路径复制下来。

6.3远程调试启动

经过以上设置后,在[本地计算机]中点击F5或VS2010中启动调试按钮,此时,神奇的事情发生了,你会发现[客户计算机]上需要调试的程序启动,调试监视器显示已连接,如图6.3所示。至此,你就可以随心所欲在远程计算机上调试程序了,结合远程控制功能,感觉如同在本机调试一样,操作非常方便。



图6.3[客户计算机]远程调试监视器监视连接
    [本地计算机]第一次进行调试时,可能会出现如图6.4所示的提示窗口。此时,选择最后一项"取消禁止从任何计算机进行远程调试的限制"确定即可。



图6.4[本地计算机]为远程调试配置防火墙
 

7 常见问题

7.1身份验证失败

    由于账户或密码不一致,或者没有本地账户的共享和安全模式 没有设置正确导致身份验证失败。如图7.1 所示。



图7.1 [本地计算机]身份验证失败
解决方法:

将[本地计算机] 和 [客户计算机]的用户名和密码设为一致,并且将两台计算的本地安全策略按照本文第二条"计算机设置"进行正确配置。

7.2无法启动调试

    由于无法连接到远程调试器,[本地计算机]无法启动调试。如图7.2 所示。



图7.2 [本地计算机]无法启动调试
解决方法:

在[客户计算机]中找到msvsmon.exe 程序并启动。

作者:Roader
出处:http://www.cnblogs.com/meixiaoqiang/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

转自:http://www.cnblogs.com/meixiaoqiang/p/3620490.html

ps:

1. c#远程调试最麻烦的就是要求本地计算机和客户计算机用户名和密码一致,c++就不需要这么复杂。

2. 客户机添加共享文件时,若本地计算机无法访问或弹出访问权限提示,可在本地计算机账户里添加客户机的帐号凭据。帐号凭据不仅共享需要,远程调试也是需要的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# 远程调试 vs2010