IIS无法启动问题的解决

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,选择连接,计算机名填本机名称,username填本机管理员帐号(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 提供。  
原文地址:https://www.cnblogs.com/hrhguanli/p/3840395.html