IIS无法启动问题的解决

时间:2022-04-03 17:59:12
IIS无法启动,显示“服务并未即使响应启动或控制请求”,我用两种办法都没有解决:
1、把IIS卸载重装也不行;
2、到服务中world wide web publishing服务也不能启动,提示127错误,依存服务都启动了也不行。

于是就没办法了,几个星期也没有调试网站。今天上网查了一下找到了一个看上去有些道理的解决办法:

呵呵,我也遇此问题,怀疑是补丁造成的,因为我们都是在下午打的补丁,然后晚上出问题还原后第一件事是查看IIS没问题,确定没问题后就又打补丁,然后IIS又出问题。
我查过了是这个WindowsXP-KB939373-x86-CHS.exe补丁,好像是阻止iis远程代码执行什么的补丁。就是最近刚刚出现的,大面积出现这个问题都是在2007年7月10号以后。
解决:到控制面板-添加/删除程序,点击最上边的“显示更新”,找到“windows xp 软件更新”,卸载掉7月10号以后的几个补丁,World Wide Web Publishing服务便能启动了。
(注意:卸载的前提是,c盘windows目录下以$开头$结尾的文件夹没有删除掉)

网上其他原因和解决办法:

1、防火墙规则限制了。
系 统环境是:Windowsxp sp2, IIS5.1。进程无法启动,这时候当然看看防火墙或是杀毒软件有没有相关的进程,"World Wide Web Publishing"的可执行文件是"inetinfo.exe",在瑞星防火墙访问规则里找到"inetinfo.exe"访问规则设为全部放行。再 次启动"World Wide Web Publishing",然后再启动IIS,一切OK。

2、没有使用管理员连接。
系统环境:Windowsxp+sp2,II5.0
故障现象:上午把IIS服务停止以后,程序长时间没响应,通过任务管理器关闭,启动时提示“服务没有及时响应启动或控制请求”,重启计算机未能解决。
解决办法:在Internet信息服务下有本地计算机(计算机机名),单击名键,选择断开,提示确实要断开本地计算机(计算机机名)吗?选择确定。
右键单击Internet,选择连接,计算机名填本机名称,用户名填本机管理员帐号(Administrator),确定。

3、依存服务没有启动。
昨 天就发现了公司我用这台电脑的IIS启动不了,今天早上试着解决它,才发现问题并不简单。找呀找呀找呀,发现 "WorldWideWebPublishing"关闭了,启动也提示启动失败。静下心来,再看看其它关闭了的服务,有一项Eventlog把它启动了, 再启动WorldWideWebPublishing成功。问题就在这里。
虽然“WorldWideWebPublishing”服务和 SMTP服务的依存关系列表中没有提到“eventlog”服务,但“eventlog”服务不启动的话,就会出现上述问题。启动“eventlog”服 务,然后启动“WorldWideWebPublishing”服务,上述问题消失。
于是查看World Wide Web Publishing Services所需要依赖的服务(Dependencies),看到是IIS Admin Service。进而发现IIS Admin Service也无法启动,再查IIS Admin Service的Dependencies,查的结果是Protected Storage和RPC(Remote Procedure Call),于是启动RPC,接着顺利启动IIS Admin Service,接着启动World Wide Web Publishing Services,于是IIS恢复正常。

4、IIS元数据库可能坏了。
测试一下。
Try to enumerate metabase:
1. Open a command prompt and change to the C:/Inetpub/Adminscripts folder.
2. At the command line, type "cscript adsutil.vbs enum " (without the
quotation marks).
If this command is successful, it enumerates the settings in the
metabase.
If the command is not successful, you receive the -2146893792
(0x80090020) error code.
假如有备份,把数据回复。
如果没有,参考
How to Manually Restore the Metabase When No Proper Backup Exists or When
the MMC Does Not Start
http://support.microsoft.com/?id=234429
HOW TO: Download, Install, and Remove the IIS MetaEdit 2.2 Utility
http://support.microsoft.com/?id=232068

有可能是Metabase.bin 或者元数据库坏了,解决办法参考如下
有关如何使用 MMC 备份和还原元数据库的信息,请参见 IIS 自述文件,该文件位于 http://localhost/iishelp/iis/htm/core/iisread.htm#general(假设本地计算机上已安装产品文档)。
如果由 MMC 创建的备份文件可用
以下内容为程序代码:

如 果已使用 MMC 中的“备份”操作创建了一个备份文件 (FileName.mdBackupNumber),但由于当前的元数据库已损坏而无法打开 MMC,请执行下面的步骤,以便手动从 FileName.mdBackupNumber 文件中还原该元数据库。 1. 停止所有 IIS 服务及其他依赖于 IIS 的服务(例如,第三方应用程序或 Microsoft Site Server)。

注意:要停止 IIS 及其依赖服务,请使用 NET STOP IISADMIN /Y 命令。有关其他信息,请参见以下 Microsoft 知识库文章:
236166 ( http://support.microsoft.com/kb/236166/) 使用 NET STOP 和 NET START 命令强制 IIS 服务重新读取注册表
2. 使用一个新名称(如 Metabase.bad)重命名已损坏的元数据库文件 Metabase.bin。该文件位于 %SystemRoot%/System32/Inetsrv 文件夹中。
3. 将位于 %SystemRoot%/System32/Inetsrv/Metaback 文件夹中的 MMC 备份元数据库文件 FileName.mdBackupNumber 复制到 %SystemRoot%/System32/Inetsrv 文件夹中。将该文件重命名为 Metabase.bin。
4. 重新启动计算机。

如果存在 Metabase.bin 文件的旧副本

如 果由 MMC 创建的备份文件不可用,但在其他位置(通常在系统磁带备份中)存在 Metabase.bin 文件的旧副本,请执行以下步骤: 1. 停止所有 IIS 服务及其他依赖于 IIS 的服务(例如,第三方应用程序或 Microsoft Site Server)。

注意:要停止 IIS 及其依赖服务,请使用 NET STOP IISADMIN /Y 命令。有关其他信息,请参见以下 Microsoft 知识库文章:
236166 ( http://support.microsoft.com/kb/236166/) 使用 NET STOP 和 NET START 命令强制 IIS 服务重新读取注册表
2. 使用一个新名称(如 Metabase.bad)重命名已损坏的元数据库文件 Metabase.bin。该文件位于 %SystemRoot%/System32/Inetsrv 文件夹中。
3. 将 Metabase.bin 文件的旧副本复制到 %SystemRoot%/System32/Inetsrv 文件夹中。
4. 重新启动计算机。

如果不存在 MMC 备份或 Metabase.bin 文件的旧副本

如果由 MMC 创建的备份文件不可用,且不存在 Metabase.bin 文件的旧副本,那么元数据库的临时备份可能依然存在。

在通过 MMC 或其他进程更新元数据库时,可能会创建元数据库的临时备份。如果更新过程被中断(原因可能是在第一个位置中有损坏),则该临时文件有可能依然存在。

可 将该临时文件命名为 Metabase.bak 或 Metabase.bin.bak,并放到 %SystemRoot%/System32/Inetsrv 文件夹中。如果存在该临时文件,请执行以下步骤,以尝试还原元数据库: 1. 停止所有 IIS 服务及其他依赖于 IIS 的服务(例如,第三方应用程序或 Microsoft Site Server)。

注意:要停止 IIS 及其依赖服务,请使用 NET STOP IISADMIN /Y 命令。有关其他信息,请参见以下 Microsoft 知识库文章:
236166 ( http://support.microsoft.com/kb/236166/) 使用 NET STOP 和 NET START 命令强制 IIS 服务重新读取注册表
2. 使用一个新名称(如 Metabase.bad)重命名已损坏的元数据库文件 Metabase.bin。该文件位于 %SystemRoot%/System32/Inetsrv 文件夹中。
3. 将临时备份文件(Metabase.bak 或 Metabase.bin.bak)重命名为 Metabase.bin。
4. 重新启动计算机。

如果不存在元数据库备份文件

如果没有可用于元数据库的备份文件,则还原 IIS 功能的唯一方法是完成以下操作。但请注意,存储在元数据库中的所有 IIS 设置都将丢失。 1. 卸载 Windows NT Option Pack。有关其他信息,请参见以下 Microsoft 知识库文章:
187870 ( http://support.microsoft.com/kb/187870/) 如何删除和重新安装 Windows NT 4.0 Option Pack
2. 卸载 Internet Explorer。
3. 从 %SystemRoot/System32/Inetsrv/ 文件夹中删除 Metabase.bin 文件。
4. 安装 Internet Explorer。
5. 安装 Windows NT Option Pack。
(c) Microsoft Corporation 2000,保留所有权利。由 Microsoft Corporation 的 Kevin Zollman 提供。