解决 IIS 7.x 安装问题

阿里云服务器

本文提供了通过查看日志文件解决 IIS 7.x 中的安装问题的信息。虽然本文适用于 IIS 7.x,但相同的概念可应用于其他版本的 IIS。

适用于:   Internet Information Services 7.0 及更高版本Applies to: Internet Information Services 7.0 and later editions

查看 IIS 安装日志文件

安装过程会在IIS7.log文本文件中进行自己的日志记录(通常在c:\windows\iis7.log中)。首先要查找的是日志文件中的“FAIL”错误。

以下是IIS7.log中条目的示例:

[11/12/2010 19:48:13] [ ***** IIS 7.0 Component Based Setup ***** ] 

[11/12/2010 19:48:13] "C:\Windows\System32\inetsrv\iissetup.exe" /install FTPServer 

[11/12/2010 19:48:13] < !!FAIL!! > METABASE_UTIL::InstallFtpMetabaseEntries result=0x800708c5 

[11/12/2010 19:48:13] < !!FAIL!! > Install of component FTPServer result=0x800708c5 

[11/12/2010 19:48:13] < !!FAIL!! > COMPONENT::ExecuteCommand result=0x800708c5 

[11/12/2010 19:48:13] [ End of IIS 7.0 Component Based Setup ]

  • 日志会告诉您安装程序是否运行以及是否成功。使用错误消息和安装命令行,在网上搜索错误“InstallFtpMetabaseEntries result=0x800708c5”。

  • 您可以重新运行安装程序。这可以帮助您隔离问题并收集正确的数据(例如,仅针对故障的进程监视器),并且您无需频繁运行安装程序。

  • 在尝试下一次安装或卸载 IIS 之前,请尝试停止所有第三方(从启动时开始的非 Microsoft 服务)服务并重新启动计算机。

要快速识别并禁用这些服务:

  • 转到开始菜单并输入msconfig。

  • 在系统配置对话框中,转到服务选项卡,然后选择底部的隐藏所有 Microsoft 服务复选框。

  • 禁用所有可以停止而不会影响服务器重启的第三方服务。通常,这些是防病毒软件和备份软件。

  • 另一个常见但重要的步骤是卸载 WPAS“Windows 进程激活服务”,尤其是在您尝试卸载并重新安装 IIS 时。当您安装 IIS 时,安装程序会自动将 WPAS 添加为依赖项之一。但是,当您卸载 IIS 时,不会自动卸载 WPAS,而核心二进制文件保持不变。这样做是有原因的,并不是错误。它保留在原处是为了防止破坏计算机上专门使用此进程范例的任何其他服务,例如 WCF 服务。通过转到服务器管理器下的功能并选择Windows 进程激活服务,确保明确卸载 WPAS 。

笔记

这在 IIS 7.5 中已发生改变。在 IIS 7.5 中,卸载程序将检查 WAS 的其他依赖项(例如 WCF),如果没有找到,则 IIS 卸载过程将删除 WAS。

查看 CBS(基于组件的安装)日志

如果IIS7.log是干净的,那么问题很可能出在 CBS(基于组件的安装)引擎上。CBS 日志可以在C:\Windows\Logs\CBS 文件夹中找到。

与IIS7.log文件一样,CBS.log文件是一个文本文件,可以使用任何文本编辑器打开(您必须从管理命令提示符打开此文件)。记住安装失败的时间范围并在 CBS.log 文件中搜索“不会忽略失败:将启动回滚”字符串,您可以从这些日志中获取一些有用的信息。以下是此类实例的一个示例。

2010-07-08 14:04:08, Info CSI 00000047 Calling generic command executable (sequence 2): [40]"C:\Windows\System32\inetsrv\iissetup.exe" CmdLine: [151]""C:\Windows\System32\inetsrv\iissetup.exe" /launch C:\Windows\System32\inetsrv\appcmd.exe reset config -section:system.applicationHost/listenerAdapters" 

2010-07-08 14:04:08, Error CSI 00000048 (F) Done with generic command 2; CreateProcess returned 0, CPAW returned S_OK Process exit code 16386 (0x00004002) resulted in success? FALSE Process output: [l:22 [22]"Failed = 0x80004002"][gle=0x80004005] 

2010-07-08 14:04:09, Info CSI 00000051@2010/7/8:18:04:09.688 CSI Advanced installer perf trace:CSIPERF:AIDONE; {81a34a10-4256-436a-89d6-794b97ca407c};Microsoft-Windows-IIS-SharedLibraries, Version = 6.1.7600.16385, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey Neutral;6148228 

2010-07-08 14:04:09, Error [0x018007] CSI 00000052 (F) Failed execution of queue item Installer: Generic Command ({81a34a10-4256-436a-89d6-794b97ca407c}) with HRESULT HRESULT_FROM_WIN32(14109). Failure will not be ignored: A rollback will be initiated after all the operations in the installer queue are completed; installer is reliable (2)[gle=0x80004005] 

2010-07-08 14:04:10, Info CSI 00000053 End executing advanced installer (sequence 75) Completion status: HRESULT_FROM_WIN32(ERROR_ADVANCED_INSTALLER_FAILED)

和以前一样,在网上搜索有关该错误的更多线索。

提示

  • 尝试其他角色,看看它们是否失败。如果失败,IIS 只是一个受害者,如果您不想执行后续步骤,您可以联系平台设置寻求帮助。

  • 运行系统更新准备工具(简称 CHECKSUR)。此工具适用于 Windows Vista、Windows Server 2008、Windows 7 和 Windows Server 2008 R2。如果此工具安装失败,则表明计算机存在其他问题,您可以联系 Microsoft 支持。

  • 从提升的命令提示符运行sfc /scannow。此命令可能需要五到十分钟,如果此工具检测到损坏,它也会尝试修复它。如果有错误并且此工具已修复它们,那么您可能会看到类似这样的内容。

C:\>sfc /scannow 

Beginning system scan. This process will take some time. 

Beginning verification phase of system scan. 

Verification 100% complete. 

Windows Resource Protection found corrupt files and successfully repaired 

them. Details are included in the CBS.Log windir\Logs\CBS\CBS.log. For example C:\Windows\Logs\CBS\CBS.log

如果此命令报告该工具无法修复的错误,您可能会看到类似以下消息。 在这种情况下,请联系 Microsoft 支持寻求帮助。