ASP.NET无法调试问题剖析

asp.net|问题

使用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权限,这需要系统管理员予以支持。
感觉上,应该还是比较容易进行配置的。若有什么不足之处,请各位多多指教。

时间: 2016-02-06

ASP.NET无法调试问题剖析的相关文章

越过调试这道槛——ASP.NET无法调试问题剖析

asp.net|问题 使用VS.NET的朋友可能经常会遇到无法调试ASP.NET的情况,有些朋友给出了一些可行的解决方案.初步总结一下,大体包括以下几个方面(请注意:这儿讨论的都是关于本地调试的解决方案): - 确定当前用户是否已经被加入到Debugger Users组 - 确定当前用户是否具有Administrator权限 - Web Application项目属性中"允许调试ASP.NET"属性是否被设为了True.也可以通过修改Web.config文件的compilation元素

asp.net无法调试的解决方法

asp.net|解决 如果iis是后来安装的,需要首先.net在命令工具中执行aspnet_regiis -i,安装asp.netframework然后检查下边的配置:如果iis不是后安装的,直接检查下边的配置: 1.确认在"配置属性"中的"启用ASP.NET调试"为"True" 2.确认你的"web.config"中的"debug=true" 3.若你安装过wind2000 SP4后,则要在命令行执行&q

VB编写ASP组件的调试

SunADM在线创作 用VB调试组件--前面豆腐说的其实还是重启了IIS的服务:p 其实如果用VB6的话,本身就已经提供了这种调试功能,方法: 现在假设组件已经初步创建完成,并在IIS/PWS下做好了调试用的ASP程序,Copy下它的URL. 调出工程属性,到调试页,选中"启动浏览器时使用的URL",把刚才的URL Paste进去. 确定,再按F5 -- 有点迷惑的是,有时会出权限问题-- 作者:Sunadm(原创)

ASP.NET Core管道深度剖析(1):采用管道处理HTTP请求

之所以称ASP.NET Core是一个Web开发平台,源于它具有一个极具扩展性的请求处理管道,我们可以通过这个管道的定制来满足各种场景下的HTTP处理需求.ASP. NET Core应用的很多特性,比如路由.认证.会话.缓存等,也同时定制消息处理管道来实现的.我们甚至可以通过管道定制在ASP.NET Core平台上创建我们自己的Web框架,实际上MVC和SingalR这两个重要的Web框架也是采用这样的方式创建的. HTTP协议自身的特性决定了任何一个Web应用的工作方式都是监听.接收并处理HT

ASP.NET性能调试

该文转自mx5721的博客:http://blog.csdn.net/mx5721/article/details/9138135 设计考虑 性能和安全的考虑 应用程序逻辑划分的考虑:逻辑分层,然后使用工具将DLL打包: 亲和度的考虑:验证方面的考虑: 减少往返次数:尽量减少与服务器的交互: 避免在长时间任务中的阻塞:可以使用异步,.net也可以设置异步; 使用缓存:善于使用缓存来提高程序的性能,将常用且不常变动的内容缓存: 避免不必要的异常,尽量介绍异常的发生,应该在逻辑编码的过程中避免异常的

Win98搭建调试ASP,PERL,PHP三种环境

perl 为了能调试三种脚本的编程环境,须安装Microsoft在WIN98发行中附带的PWS (Personal Web Server)个人WEB服务器(在WIN98光盘的add-one目录中). 1.安装PWS 安装时,请选择自定义安装,在Personal Web Server(PWS)的子组件中,双击"文档",再选取"Avtive Server Pages"即ASP,继续下去.安装完毕,重启即可.到此,在任务栏中的右下角出现图标,单击右键,确定以启动服务.然后

浅谈ASP程序的编写和调试:给初学者

程序|初学 很多朋友觉得ASP不是很好学,我觉得其实有了一定的编程基础,再加上那么一点点技巧,入门是不难的(不过要做好也不是很容易,要很多的相关知识--什么Sql Server数据库语言啦,数据结构啦(这些都是在优化Asp的算法时候要熟悉的). 在这只和大家谈谈我个人是怎书写和调试ASP的,希望能给大有一点帮助-- ASP脚本的书写: 一.注意区分清楚html语法和VBScript语法.因为ASP是混合使用Html语法和VBScript语法的(当然,我全部写成VBScript语法也可以,不过那样

关于在ASP.NET 中进行调试的方法(转载自itpeople),不过我个人对第三招不以为然,有了v

用过ASP的人对它的调试应该是记忆深刻的.在整片整片的代码中找到那几个出错的地方,难度可想而知.现在微软推出了ASP的更新换代产品ASP.Net.对于ASP.Net的好处,我想很多网站都已经介绍了差不多的,不过对于ASP.Net的调试讲得就不是很多了.所以,我就以我的一点个人经验写了这一篇文章.由于,我也是接触ASP.Net不久,错漏之处在所难免,还请大家多多指正.好了,言归正传. 第一招:配置Config.web     一般,当我们写好的网页运行出错了,ASP.Net就会在页面上告诉我们程序

浅谈Asp程序的编写和调试——给初学者

程序|初学     很多朋友觉得Asp不是很好学,我觉得其实有了一定的编程基础,再加上那么一点点技巧,入门是不难的(不过要做好也不是很容易,要很多的相关知识--什么Sql Server数据库语言啦,数据结构啦(这些都是在优化Asp的算法时候要熟悉的).    在这只和大家谈谈我个人是怎书写和调试Asp的,希望能给大有一点帮助--Asp脚本的书写: 一.注意区分清楚html语法和VBScript语法.因为Asp是混合使用Html语法和VBScript语法的(当然,我全部写成VBScript语法也可