ASP.NET无法调试问题剖析
2024-07-10 13:04:16
供稿:网友
本文来源于网页设计爱好者web开发社区http://www.html.org.cn收集整理,欢迎访问。使用vs.net的朋友可能经常会遇到无法调试asp.net的情况,有些朋友给出了一些可行的解决方案。初步总结一下,大体包括以下几个方面(请注意:这儿讨论的都是关于本地调试的解决方案):
- 确定当前用户是否已经被加入到debugger users组
- 确定当前用户是否具有administrator权限
- web application项目属性中“允许调试asp.net”属性是否被设为了true。也可以通过修改web.config文件的compilation元素的debug属性为true来实现。
需要说明的是,本地调试asp.net应用程序需要的操作系统是windows 2000 professional, windows 2000 server, windows 2000 advanced server, windows xp professional 和 windows server 2003。也就是说,我们无法在windows xp home,windowsme 和 windows98上进行调试工作。(废话?)
一般情况下,按照上述的一些解决方案基本上就可以使用我们运行asp.net的调试工作了。实在有问题,通过尝试使用.net自带的aspnet_regiis.exe重新配置一下iis,应该就可以了。
不过,本文希望和大家讨论一下,如何在没有本机administrator权限下进行asp.net的调试。初听起来,是不是觉得没有必要呀?但如果大家仔细想一想,就会认识到这样做的必要性的。原因很简单,在大多数管理比较正规的软件公司,开发人员一般是不会被授予本机administrator权限的,那么如何在没有本机administrator权限的情况下调试asp.net应用程序就成了首先需要解决的问题了。为此我查阅一些资料(主要是msdn online),并从中总结出了一套可行的解决方案,希望与大家共享之。测试环境:windows xp professional sp1, vistual studio .net 2002.
首先,将当前登录的用户加入到debugger users组中(此外,此用户至少要属于users组。绝大多数情况下,开发人员会被授予power users权限)。顺便说一下,如果希望此用户可以维护web虚拟目录,则需要将此用户添加到vs developers组。当然,这与能否调试asp.net应用程序无关。
接着,根据微软的说法,如果此用户希望在windows xp professional下调试asp.net应用程序,还需要将此用户加入到“作为批处理作业登录”策略中(当然,支持调试asp.net的其它版本windows不需要做此设置),这样就可以进行调试了。可以在“控制面板->管理工具->本地安全设置”工具的“安全设置->本地策略->用户权利指派->作为批处理作业登录”部分加入此用户。不幸的是,结果并不象微软相关文档所说的那样,设置了这些后就可以进行调试。经过一段时间的研究,我从msdn online的一篇文章中找到了答案。相信大家都知道,在默认情况下,aspnet_wp.exe进程是以web server方式运行,其用户名是aspnet。在这种情况下,如何我们想对web application进行调试,就必须拥有本机administrator权限。这就为什么我们至今还不能进行调试的原因。那到底该如何解决这个问题呢?.net为asp.net用户提供了另一种解决方案,我们可以让aspnet_wp.exe以工作进程的方式运行在指定用户下,此时,指定用户只要是属于debugger users组就可以对它进行调试了。终于看到胜利的曙光了。
那么,如何使aspnet_wp.exe运行在指定用户帐号下呢?答案是,对machine.config文件的相关配置项进行配置就行了。以vs.net2002为例,此文件位于c:/windows/microsoft.net/framework/v1.0.3705/config中。我们要做的是,找到processmodel配置项,修改username和password属性。注意,如果使用的是域用户,请填入<domain>/username。然后,找到temporary asp.net files properties目录,此目录与config目录位于同一目录下。在右键呼出的弹出菜单中选择“属性->安全->高级”,此时将弹出“temporary asp.net files properties的高级安全设置”对话框。在“权限”标签中,点击“添加”按钮将指定用户添加下“权限项目”列表中。重启计算机,大功告成。注意:上述操作需要有本机administrator权限,这需要系统管理员予以支持。
感觉上,应该还是比较容易进行配置的。若有什么不足之处,请各位多多指教。