JIT调试失败及如何在没有本机Administrator权限的情况下调试ASP.NET应用程序

12 views
Skip to first unread message

dinas...@gmail.com

unread,
Nov 17, 2006, 3:33:22 AM11/17/06
to WEB开发技巧回收站
JIT调试失败
--------------------------------------------------------------------------------

IIS运行我机子上所有asp.net程序就提示如下,运行asp没事。
JIT调试失败,出现以下错误:拒绝访问。
JIT调试由用户帐号"NT AUTHORITY\NETWORK SERVICE"启动。
有关更多信息,请查看文档索引中的"实时调试错误"。
另外提示:
管理工具里的计算机管理中的
本地用户和组中的Debugger Users有IWAM_机器名;

--------------------------------------------------------------------------------

组中的Debugger Users加NETWORK SERVICE

--------------------------------------------------------------------------------

http://chs.gotdotnet.com/quickstart/aspplus/doc/debugcomsdk.aspx

--------------------------------------------------------------------------------

http://support.microsoft.com/kb/306172/zh-cn

--------------------------------------------------------------------------------

Aspnet_wp.exe 进程中没有。

--------------------------------------------------------------------------------

很显然,.NET 没有安装好,重新安装。

--------------------------------------------------------------------------------

NO,我一直用的好好的,此现象是突然发生。

--------------------------------------------------------------------------------

很显然,.NET 安装好后没有正常关机,重新安装。

--------------------------------------------------------------------------------

现在是一运行aspx的页面就弹出提示框:异常"System.ExecutionEngineException"在/LM/W3SVC/....中发生。
但是,没有注册能够调试此异常的调试器。无法进行JIT调试。
然后另一个提示框是:JIT调试失败,出现以下错误:未指定的错误
有关更多信息,请查看文档主题"实时调试错误"。

--------------------------------------------------------------------------------

你用的是什么机器和系统?看一下这个帖子是否有帮助:
http://p2p.wrox.com/topic.asp?TOPIC_ID=8844

--------------------------------------------------------------------------------

现在是一运行aspx的页面就弹出提示框:异常"System.ExecutionEngineException"在/LM/W3SVC/....中发生。
但是,没有注册能够调试此异常的调试器。无法进行JIT调试。
然后另一个提示框是:JIT调试失败,出现以下错误:未指定的错误
有关更多信息,请查看文档主题"实时调试错误"。
----------------
今天遇到相同的问题,查找到的解决方案如下,测试有效:
1. Go to: Settings >> Control Panel >> Administrative Tools >>
Microsoft .NET Framework 1.1 Configuration
2. The .NET 1.1 Configuration module will appear. Click on the
"Runtime Security Policy" folder on the left hand side of the screen.
3. Click on the "Adjust Security Zone" link in the body of the screen.
4. Click "Next."
5. Click the "Local Intranet" security button (since our application
is distributed through the company intranet.)
6. Adjusted the security to "FULL."

--------------------------------------------------------------------------------

仍旧不行。运行.aspx的文件就出现"实时调试"框:异常"System.ExecutionEngineException"在/LM/W3SVC/370283754/Root/test-1-127575849444198528中发生。

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权限,这需要系统管理员予以支持。

dinas...@gmail.com

unread,
Nov 17, 2006, 8:43:45 PM11/17/06
to WEB开发技巧回收站
JIT调试失败,出现以下错误:拒绝访问。
JIT调试由用户帐号"NT AUTHORITY\NETWORK SERVICE"启动。
有关更多信息,请查看文档索引中的"实时调试错误"。

=================解决办法如下:
1、重新安装IIS(要与当前OS同版本的安装盘或镜像文件。
2、重新安装asp.net(在VS2003的命令行窗口中执行aspnet_regiis
-i )
3、打开IIS管理器,在Internet信息服务下的MachineName(本地计算机)结点上右键选择"所有任务"下的"重新启动IIS"。
4、最后,在WEB服务扩展下,找到ASP.NET
v1.1.4322,将它设置为"允许"即可。

注意以上在win2003下可以解决问题,其它操作系统下没有试过。虽然比较麻烦且浪费时间,不过幸好可以解决问题。万幸啊,不用重新安装OS了。

Reply all
Reply to author
Forward
0 new messages