1.
HOW TO:Set Up and Use Remote Debugging in Microsoft Visual Studio .NET(HOWTO:在 Microsoft Visual Studio .NET 中设置和使用远程调试)
2.
2 在主程序中设置启动监视器得代码,由于配置authentication得比较麻烦,所有我就配置成noauth,并且是anyuser得,例如: WinExec("/"C://Program Files//Microsoft Visual Studio 8//Common7//IDE//
Remote Debugger//x86//msvsmon.exe/" /anyuser /noauth /nosecuritywarn", SW_HIDE);
3.
远程调试(remote debug) 有时候还是比较方便的,例如你的服务器程序发布到远程服务器上需要调试来确定bug,但是程序需要相关的环境配置(数据库或者其他程序等)才可以运行起来,你不想在本地搞一套同样的系统或者不方便在本地搞一套相同的系统,那么,这个时候使用remote debug就可以很方便地在本机对远程服务器上的目标程序进行调试跟踪了。
这里说的是VS2005(英文版)环境下的使用.
首先远程机器要安装Visual Studio Tools的Visual Studio 2005 Remote Debug
1、远程机器
运行你的debug 版exe程序,即需要进行远程调试的程序 ,最好把.pdb文件也放在同一文件夹(不知道是不是必须,只是我习惯一起放上去)
再运行Visual Studio 2005 Remote Debug,在选择程序上的菜单设置[Tools]->[Option]
在[Authentication mode]框中选择[No Authentication]并且选上[Allow any user to debug]
按[ok]按钮就ok了
2、本机
用VS2005打开你的程序的工程,
选择菜单[debug]->[Attach to process]
在弹出的窗体中,[Transport]下拉列表项选择[Remot(.....)]
然后[Qualifier]下拉列表选择你的远程机器的IP,或者手工输入IP也可以,
选好之后,下面的列表框中会列出远程机器上运行着的进程,选中你的目标进程,然后按[Attach]安就就成功了
这样就像是在本地启动debug调试一样,可以和本地一样使用各种debug功能,例如[break point],[quick watch],[call stack]等。
关于远程调试的详细参考信息 ,可访问msdn,url如下:
Visual Studio 调试器 http://msdn2.microsoft.com/zh-cn/library/y7f5zaaa(VS.80).aspx
4.
5月30日
VS 2005 远程调试
记得以前
VS98 可以调试ASP脚本,但好象是在本机做的,现在
VS2005本机也可以调ASP.NET, 但是远程一直没有配成功。Server端IIS的FrontPage Extension 2002也有问题,
方案: Alice 和 Bob 都是 SomeCompany 的雇员。SomeCompany 有一个名为 SomeCompany 的 NT 域。Bob 在使用 Alice 编写的某个软件时遇到问题。Alice 希望在 Bob 的计算机上调试此软件。
- Bob 的计算机上没有安装远程调试器。为安装远程调试器,Alice 决定在其计算机上共享“Program Files/Microsoft Visual Studio 8/Common7/IDE/Remote Debugger”目录。她将创建一个名为“Remote”的文件共享。
- Bob 运行 //AliceComputer/Remote/x86/Msvsmon.exe
- 远程调试器 (Msvsmon.exe) 启动后,Bob 通过“工具”->“权限”对话框来配置远程调试器。他授予 Alice 调试权限。注意: Bob 也可以通过在启动时传递“/allow”选项来配置远程调试器。
- Alice 启动 Visual Studio
- Alice 启动“工具”->“附加到进程”对话框
- 通过在“名称”编辑框中输入 SomeCompany/Bob@BobComputer,Alice 连接到 Bob 的计算机
- Alice 选择她所编写的应用程序,然后开始调试
- Alice 找到问题后,Bob 便可以关闭远程调试器
5.
请根据你的调试类型与操作系统选择,以下步骤请勿颠倒(不行的话,从头开始设置)
PS:因本人撰写本稿时,用的是Win 2003 、Win2000 繁体版 + Visual Studio.Net 2003 英文版,故抓下来的图与说明不大一样,但这些“属性”的位置是不变的
一、本地调试
A. Windows 2000 操作系统
1、打开VS.Net工具选项 → 项目Web设置 → Web服务器连接 → Forntpage
扩展
2、用户的群组 → 删除“ (192.168.0.1) Admins”用户组”(可能不是 IP,是计算机名称,没有就不用删了)
3、右击“我的电脑” → 管理 → 服务和应用程序 → Internet 信息管理服务器(IIS) →右击“默认Web站点”所有任务→删除服务器扩展
4、在 MS-DOS 命令下运行“C:/WINNT/Microsoft.NET/Framework/v1.0.3705/aspnet_regiis.exe -i”(此处也可能是“C:/WINNT/Microsoft.NET/Framework/ v1.1.4322/aspnet_regiis.exe -i”),接着在 “C:/WINNT/Microsoft.NET/Framework/v1.0.3705/Config/machine.config”文件找到“ <processModel …… />”把“ username="machine" ”改成“username="system" ”。
5、按第 3 步,在“所有任务” → “配置服务器扩展”完成向导的过程中会提示你创建本地用户组“(192.168.0.1) Admins” → 刷新“用户组”即可看到,然后添加该组成员
6、右击“Internet信息报务” → 属性 → 服务器扩展 → “充许作者上载可执行程序”;
7、检查“c:/inetpub/wwwroot”文件夹(注意此处为站点所在根目录,必须是 NTFS 格式)安全属性,里面应该有“(192.168.0.1) Admins”用户组,没有就自己加上,并附上相应的权力
8、运行VS.NET,新建项目会有用户名和密码提示框,输入(192.168.0.1) Admins 群组成员相应的账号及密码(用户密码不能为空,若该账号无密码请添加)
B. Windows 2003操作系统
1、同上
2、右击“我的电脑” → 管理 → 服务和应用程序 → Internet 信息管理服务器(IIS) → 站点 → 右击“默认Web站点” → 所有任务 → 删除 Server Extensions 2002 → 将打开一网页,输入 “Administrator ”及密码,按步骤做完
3、在 MS-DOS 命令下运行“C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/aspnet_regiis.exe –i”
4、右击“默认Web站点” → 所有任务 → 设置 Server Extensions 2002 → → 改变匿名访问 → 选择“开启”、“参与者”
“完成后” → 点击左上角的“管理”
5、完成上述 4 个步骤,只有Administrators 用户组的成员才有权限进行调试,其他用户的调试请参照“远程调试”
二、远程调试
首先,先介绍远程调试的先决条件:
1、Web 服务器需要能够进行本地调试的条件
2、Web 服务器需要安装 Visual Studio .NET 远程组件, 客户端只需要“Full Remote Debugging”一项
A. Windows 2000 操作系统
1、你需要有一个 Web 服务器的账号 ,该账号至少应该是”Debugger Users” ”WebAdmins”两个用户组的成员(此处我建立一个 ”cityhunter” 的账号,”Web Admins” 是设置本地调试时创建的)
2、在服务器上的“C:/WINNT/Microsoft.NET/Framework/v1.0.3705/Config/machine.config”文件中找到“ <processModel …… />”把“username” 设成"cityhunter", “password” 设为 "123456"。然后重启服务器(不知重启 IIS 可不可以)
3、用户必须以 用户名: ”cityhunter” 密码:”123456” 的帐号登录客户端电脑.。这一点对于 服务器与客户端 在同一工作组的用户来说是关键!!原因也许是 Web 服务器检测账号时,只对当前客户端电脑使用者的账户及密码,而不是检验 打开项目时用户输入的账户及密码。
B. Windows 2003 操作系统
1、建立一个 ”cityhunter” 的账号,密码为 ”123456”,将其加入”Debugger Users “用户组
2、右击“我的电脑” → 管理 → 服务和应用程序 → Internet 信息管理服务器(IIS) → 站点 → 右击“默认Web站点” → 新增 → Server Extensions 2002 管理员 → 将打开一网页,输入 “Administrator ”及密码,按步骤做完,最后此账户也至少应该在二个工作组内
特别提醒:此账户还需要加入到 IIS_WPG 群组中
(此为 2005-01-18 之前遗漏的部分,若由此引发 'DefaultAppPool' 启动错误,请各位谅解)
3、右击“我的电脑” → 管理 → 服务和应用程序 → Internet 信息管理服务器(IIS) → 应用程序池 → 右击“DefaultAppPool” → 属性 → 身份验证 → 指定为 “cityhunter”。完成后重启。
4、用户必须以 用户名: ”cityhunter” 密码:”123456” 的帐号登录客户端电脑.才能对 Web 服务器的项目进行调试。
以上设定完成后,进行调试,可以 在服务器的 “任务管理器” 看到 ”w3wp.exe” (Win 2000 下是 “aspnet_wp.exe”)“vs7jit.exe” 是以 “cityhunter” 身份运行的。需要注意的是公司的防火墙不能阻拦上述程序的通信。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=245229