原文出处: http://www.iisfaq.com/Default.aspx?tabid=3094
1、如果WEB站点目录下有Global.asa文件,改此文件文件名为Global.old.重启WEB服务,在记事本中写如下代码(原文中无代码,实际最简单的那种asp源码就行,译者注).文件另存为Test.asp于WEB根目录下.
如果asp文件能正常执行,问题就出在Global.asa上,如果依然不行,请转到第二步.
参阅如下微软知识库有关Global.asa文件出错的更多信息.
Q288245 PRB: Global.asa Does Not Fire from Personal Web Server on Windows 98
Q265275 FP2000: Global.asa Does Not Run in FrontPage Web
Q173742 FIX: Global.asa Is Not Executed If Restricting Web Access
2、将Web站点的应用程序保护级别设置为"低IIS进程",重启IISAdmin服务.如果ASP文件如此能正常执行,说明问题出在IWAM用户上,请跳到第三步继续.如果没有正常执行,请在管理工具中检查组件服务确保能看到IIS Packages,确保组件服务没有失败后,确认本地用户组中有如下用户存在:
NT AUTHORITY\Authenticated Users
NT AUTHORITY\INTERACTIVE
关于更多组件服务出错的信息,请参考入下知识文章:
Q301919 PRB: Cannot Expand 'My Computer' in Component Services MMC Snap-In
3、如果通过第二步ASP文件能正常执行,将站点的应用程序保护级别设回"中"或"高",将IWAM用户添加到本地管理员用户组中,如果通过这步,ASP文件能正常执行,说明IWAM用户的访问许可权限就存在问题,请跳到第四步,如果ASP文件还没正常执行,请在命令提示符中执行Synciwam.vbs 工具.
方法:打开命令提示符窗口敲入如下命令:
C:\Inetpub\adminscripts>cscript synciwam.vbs.
关于IWAM用户(设置不正确)导致asp文件不能正常执行,请参考入下知识库.
Q308622 HOW TO: Perform Administration Tasks in IIS from a Command Prompt
Q297989 PRB: Configured Identity Is Incorrect for IWAM Account
Q255770 PRB: Logon Failure: Unknown User Name or Bad Password When You Run Out-of-Process Webs
Q236007 Domain Controller Demotion Causes Out-of-Process Applications to Fail
4、解决IWAM用户许可权限的问题,请使用Windows 2000的第三方产品:Regmon 和 Filemon.请在//www.sysinternals.com中下载这些工具.
当你执行ASP页面请求时运行这些工具, Dllhost.exe 进程在Regmon 中查找"ACCDENIED" (在Filemon中查找"FAILURE").
注意:在IE进程出现"操作失败"时不要紧张,这只是普通现象.~~
关于IIS功能正常运作所需的最小条件,请参阅知识库:
Q271071 Minimum NTFS Permissions Required for IIS 5.0 to Work
在看到Dllhost.exe 进程"操作失败"的错误信息后,用Regedit32工具修改注册表里任何必须的NTFS许可权限(好像是病句,,汗...)
5、在装完IIS5.0后,从WEB 服务器控制台或其他网络上的工作站浏览asp或html文件,WEB服务可能返回如下错误信息:
HTTP 500 内部服务器错误.
默认的web服务可能处于运行状态,如果运行netstat -an 你可能注意到WEB服务器正监听TCP80端口,即HTTP的默认端口.
注意:如果在使用IE5.0(或以上版本,译者注),你可能屏蔽了IE高级选项中的显示友好HTTP错误信息选项,更多信息:请参考微软知识库:
Q218155 Description of Hypertext Transport Protocol Error Messages
下面的几条可能出现在装有IIS5.0机器的事件日志中:
Application Log: COM+ error with Event ID 4099
System Log: W3SVC error with Event ID 59
System Log: W3SVC warning with Event ID 36.
Iis5.log 文件(WINNT目录下)可能包含下面错误信息:
0x8004e00f=COM+ was unable to talk to the Microsoft Distributed Transaction Coordinator
你正试图打开com+管理者使用的组件服务,MMC停止响应.
原因
IIS5.0依赖与COM+,COM+依赖于Distributed Transaction Coordinator (DTC) 服务运行,DTC检查版本的机制(包括在windows 2000以前的SQL SERVER版本)不能识别Windows2000所用的版本属性,结果SQL SERVER的DTC安装程序移除了WINDOWS 2000安装的DTC服务,更多请查阅微软知识库:
Q249310 BUG: Installing SQL Server on Windows 2000 Uninstalls DTC Service
解决
如下步骤解决这个问题:
a. 验证 Dtcsetup.exe(默认在C:\Winnt\System32 下)是否为 1999.9.3422.24 或以后版本号
b. 运行 Dtcsetup.exe 安装DTC服务
c. 开始 DTC 服务
d. 控制面板中,双击"添加删除程序"
e. 选"添加删除Windows组件",移除 IIS5.0 再重新安装
现状
微软已经确认在 SQL Server versions 6.5 和 7.0 and MSDE 1.0 中这会是个问题
详细请参见文章:
//support.microsoft.com/default.aspx?scid=kb;en-us;Q257267
6、最后一招:依照下面步骤自己创建IIS Packages
a. 浏览组件服务删除下列包
a) IIS In-Process Applications
b) IIS Out-of-Process Pooled Applications
c) IIS Utilities
b. 打开命令提示符,转到文件夹 %windir%\system32\inetsrv,执行命令:
rundll32 wamreg.dll, CreateIISPackage
注意:CreateIISPackage是大小写敏感的,确人输入正确
c. 重新打开组件服务,你将看到IIS COM+应用已经重新创建了
d. 从命令提示符中运行 IISRESTART,再测试之前没有正确执行的任何asp文件