对 ASP.NET 应用程序启动调试应如何设置(包括远程调试)
请根据你的调试类型与操作系统选择,以下步骤请勿颠倒(不行的话,从头开始设置)
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 ”及密码,按步骤做完,最后此账户也至少应该在二个工作组内
3、右击“我的电脑” → 管理 → 服务和应用程序 → Internet 信息管理服务器(IIS) → 应用程序池 → 右击“DefaultAppPool” → 属性 → 身份验证 → 指定为 “cityhunter”。完成后重启。
4、用户必须以 用户名: ”cityhunter” 密码:”123456” 的帐号登录客户端电脑.才能对 Web 服务器的项目进行调试。
以上设定完成后,进行调试,可以 在服务器的 “任务管理器” 看到 ”w3wp.exe” (Win 2000 下是 “aspnet_wp.exe”)“vs7jit.exe” 是以 “cityhunter” 身份运行的。需要注意的是公司的防火墙不能阻拦上述程序的通信。