上一篇:Asp.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权限,这需要系统管理员予以支持。
感觉上,应该还是比较容易进行配置的。若有什么不足之处,请各位多多指教。
下一篇:一段用ASP查看ASP文件源码的程序. >>
相关文章:
- · 利用WebClient类向服务器上载文件
- · .net中Web自定义控件编写的几个注意事项
- · 奇妙的.NET之Web程序中使用windows弹出框
- · webservice.htc无法传递中文数据的解决
- · 用反射调用别人的.NET程序里的类和方法
- · DataView如何绑定Web Service返回的主从表数据集
- · 在类中添加断言
- · UBB代码的实现(ASP)
- · 精确的判断网络是否可用
- · 调试SharePoint web part时, 如何可以多个人同时启动调试?
- · 关于编译器失败,错误代码为 128。的解决方案
- · 如何实现将用户上传的文件生成缩略图!
- · 链接提示文字的实现
- · Code Behind技术
- · 几个开源项目实体层实现方式比较
- · 上传图片并生成缩略图
- · ASP全程讲座
- · 在网页中添加天气预报
- · 鼠标下浮动的文字和时钟
- · 音乐城堡2004免费版
- · ASP汉字转拼音函数
- · Oracle常見問題集(四)
- · 以ASP实现数据查询及输入
- · ASP操作Excel技术总结
- · bak文件带来的灾难
- · 关于输入框中显示双引号和单引号
- · 关于&运算符效率低下的问题,好的解决办法
- · 右键失效
- · 显示用户是否在线的方法
- · 图片的导入导出
- · 取消缓存
- · n 行n列的显示数据
- · 转换十进制为二进制的函数
- · 随心所欲的定制“弹出窗口”
- · Duwamish深入剖析-结构篇
- · 如何实现无刷新的DropdownList联动效果
- · 交叉表应用-成绩统计
- · http1.1状态代码及其说明
