来源 微软中国
本文逐步介绍当 ASP (Active Server Pages) 在 Internet 信息服务 (IIS) 5.0 Web 服务器上停止响应时所采取的故障排除步骤。平台可以是任意版本的 Windows 2000。
如何排除 IIS 5.0 中的 ASP 故障
注意:在开始之前,请确保在所讨论的 Web 服务器上打开了 .html 或 .htm 文件。如果这些文件未打开,则不属于 ASP 问题。 1. 如果 Global.asa 文件位于 Web 站点的根目录中,请将其重命名为 Global.old,停止并重新启动 Web 服务,然后在记事本中使用以下代码创建一个 ASP 测试页:
<%
Response.Write "This is a test ASP page."
%>
在您的 Web 站点的根目录中将该文件另存为 Test.asp,并尝试在 Web 服务器上打开该文件。
如果在执行该步骤后,Web 浏览器中加载了 ASP 页,则 Global.asa 文件存在问题。如果 ASP 页仍未加载,请接着执行步骤 2。
有关 Global.asa 文件故障排除方面的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
288245 PRB:Global.asa Does Not Fire from Personal Web Server on Windows 98
265275 FP2000: Global.asa Does Not Run in FrontPage Web
173742 FIX: Global.asa Is Not Executed If Restricting Web Access
2. 将 Web 站点的应用程序保护设置为低,然后停止并重新启动 IISAdmin 服务。如果在执行此步骤后 Web 浏览器中加载了 ASP 页,则 IWAM 帐户存在问题,您可以接着执行步骤 3。如果 ASP 页仍未加载,请检查管理工具中的组件服务以确保可以查看 IIS 程序包。这可确保组件服务没有故障。确保在本地用户组中存在以下用户: • NT AUTHORITY/Authenticated Users
• NT AUTHORITY/INTERACTIVE
有关组件服务管理单元故障排除方面的更多信息,请参阅以下知识库文章:
301919 PRB:Cannot Expand ’My Computer’ in Component Services MMC Snap-In
3. 如果在执行步骤 2 后 Web 浏览器中加载了 ASP 页,请将站点的应用程序保护级别重新设为中或高,并将 IWAM 帐户添加到本地管理员组中。如果在执行此步骤后 Web 浏览器中加载了 ASP 页,则存在与 IWAM 帐户有关的权限问题,您可以接着执行步骤 4。如果 ASP 页仍未加载,请从命令行运行 Synciwam.vbs 实用工具。为此,请打开命令提示窗口并键入 C:/Inetpub/adminscripts>cscript synciwam.vbs。 有关 IWAM 用户帐户导致 ASP 出现故障的情况的其他信息,请参阅下列知识库文章:
308622 HOW TO:从命令提示符执行 IIS 中的管理任务
297989 PRB:为 IWAM 帐户配置的标识不正确
255770 PRB:运行进程外 Web 时出现"Logon Failure: Unknown User Name or Bad Password"(登录失败:未知的用户名或错误密码)错误信息
236007 Domain Controller Demotion Causes Out-of-Process Applications to Fail
4. 要解决 IWAM 帐户的权限问题,请使用适用于 Windows 2000 的 Regmon 和 Filemon 第三方产品。要下载这些实用工具,请参见下面的 Web 站点:
http://www.sysinternals.com
请在请求 ASP 页的同时运行这些实用工具,然后针对 Dllhost.exe 进程,在 Regmon 中搜索"ACCDENIED",在 Filemon 中搜索"FAILURE"。
注意:如果对于 Iexplore.exe (Microsoft Internet Explorer) 进程,出现"access denied"(拒绝访问)错误信息,请不要惊慌。这是正常现象。
有关 IIS 正常运行所需的最小权限的更多信息,请参阅下列知识库文章:
271071 IIS 5.0 工作时需要的最小 NTFS 权限
在识别针对 Dllhost.exe 进程的"access denied"(拒绝访问)错误信息后,请使用 Regedt32 在注册表中对 NTFS 权限进行必要的修改。
5. 在系统事件日志中,查找以下事件:
Source:DCOM
Event ID: 10010
User:NT AUTHORITY/SYSTEM
Description:The server {3D14228D-FBE1-11D0-995D-00C04FD919C1} did not register with DCOM within the required timeout.
在事件日志中,该错误信息之后还有与下面内容类似的警告消息:
Source:W3SVC
Event ID: 36
User:N/A
Description:The server failed to load application ’AppPath’.The error was ’Server execution failed’.
%SystemRoot%/Iis5.log 文件中也可能出现与下面内容类似的条目:
OC_ABOUT_TO_COMMIT_QUEUE:Unreg iis_core:FindModules:FindProcessByNameW failed!
如果收到上述错误信息,则 NT AUTHORITY/Authenticated Users 或 NT AUTHORITY/INTERACTIVE 项已经被从用户组中删除。要解决该问题,请确保 Authenticated Users 和 INTERACTIVE 是该计算机的用户组的成员。
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
327153 PRB:无法处理 ASP 页并且在系统日志中出现 DCOM 事件 10010
6. 实在迫不得已,您可以重新创建 IIS 程序包。为此,请按照下列步骤操作: a. 浏览至"组件服务"并删除下列程序包:注意:要删除这些程序包,必须首先打开程序包的属性,单击高级选项卡,然后单击以清除禁止删除复选框。
• IIS In-Process Applications
• IIS Out-of-Process Pooled Applications
• IIS Utilities
b. 打开命令提示窗口,然后使用以下命令切换目录:
cd %windir%/system32/inetsrv
c. 运行以下命令:
rundll32 wamreg.dll, CreateIISPackage
注意:必须准确键入"CreateIISPackage";它区分大小写。
regsvr32 asptxn.dll
d. 关闭并重新打开"组件服务"。您应看到已经重新创建的所有这三个 IIS COM+ 应用程序。
e. 从命令行运行 IISRESET,并对先前未正确加载的任意 ASP 页进行测试