远程调试IIS服务器的ASP.NET2.0网站

IIS服务器:Windows Server2003,IIS6.0,

本地VS2005开发机器:Windows XP SP3,VS2005

网站在本地运行没有问题,但部署到IIS服务器上就出错,没办法,就想到了远程调试。

网上说,首先要安装Remote Debugger,在VS2005.pro.cn\vs\Remote Debugger\X86安装目录下,rdbgsetup.exe。运行,OK。

安装完毕后,会启动Visual Studio 2005 Remote Debugger 配置向导。一开始搞不懂,随便设置的。

然后,按照网页说明,将Server2003的IIS文件夹共享出来。让XP能够访问到。设置为administrator完全控制。

在XP里用VS2005以打开网站的形式打开IIS共享文件夹,结果提示这是已经预编译的,不能调试。于是,我将XP上的网站源代码全部拷贝到Server2003上,然后再进行网络共享,再从XP里的VS2005打开,可以看到UI层的源代码了。(没有共享DAL层和BLL层等其它层的目录)

远程调试IIS服务器的ASP.NET2.0网站_第1张图片

此时,也可以编译并运行,但是打开的仍然是本地URL的网站,并不是在2003的IIS上运行的。所以,需要修改网站项目的设置,右键点击项目名称,选择“属性页”,然后打开“属性页”窗口,在“启动选项”菜单中,设置“服务器”为“使用自定义服务器”,并在“基URL”中填入服务器的网站URL,如下图:

远程调试IIS服务器的ASP.NET2.0网站_第2张图片

然后,就按F5调试运行,不行!出错,验证不能通过,说没有用户名或者用户名密码不对什么的。然后我就到网上搜了一大堆网页,尝试了一大堆方法都不管用。

最后,在这个网页找到了一些关键信息:http://msdn.microsoft.com/zh-cn/library/aa290100(v=vs.71).aspx  (将 Visual Studio .NET 调试器用于 ASP.NET 应用程序 )——

远程调试工作组中的机器失败

当您的两台 Windows XP Pro 机器都不在域中但在工作组中时,将发生这种情况。在它们之间进行远程调试时,您根本无法访问远程机器。

在工作组环境中,您需要确保两台机器具有相同的用户帐户名和相同的密码。否则,DCOM 进行身份验证时将失败。

另外,在 Windows XP Pro 上,将 Sharing and security model for local accounts 的默认安全设置设置为现在允许共享。下面是更改此设置的步骤:

  1. 运行管理员工具中的 Local Security Settings

  2. 选择 Security settings\Local policies\Security 选项。

  3. Network access : Sharing and Security model for local accountsGuest only - local users authenticate as Guest 更改为 Classic - local users authenticate as themselves

  4. 重新启动计算机。

应该将此更改应用于进行远程调试的两台机器。

更改设置后,即可使用同一名称的用户帐户在两台机器上进行远程调试。

上面的话,使我意识到还是权限的问题,而改正的关键,就是让两台电脑拥有同样的管理员密码。于是我修改了XP的管理员密码,同Server2003的密码保持一致,还重启了计算机(上面的DCOM身份验证安全设置修改需要重启计算机)。重启之后,果然就可以调试2003的IIS运行的网站代码了。下图就是远程代码的中断:

远程调试IIS服务器的ASP.NET2.0网站_第3张图片

另外,打开“调试-附加到进程”,就可以访问Server2003上的进程了,见下图,这就意味着可以调试Server2003上运行的桌面程序了。具体我还没有实验。

远程调试IIS服务器的ASP.NET2.0网站_第4张图片

 最后,看一下Server2003上运行的Remote Debugger的情况:

远程调试IIS服务器的ASP.NET2.0网站_第5张图片

你可能感兴趣的:(asp.net)