故障现象:一天上班,启动服务器后,发现IIS没有启动了.点击桌面上的IIS配置程序,没有任何反应,在”服务”组件里发现IIS处于停止状态,于是启动它,结果出现以下错误提示:


 

“系统找不到指定的文件”,印象中IIS有一个配置文件,会不会是它出问题了呢?
小知识: 关于IIS的配置文件
IIS 5 中,IIS的配置文件在:C:\WINNT\system32\inetsrv\MetaBase.bin
IIS 6 中,IIS 的配置文件在:C:\WINDOWS\system32\inetsrv\MetaBase.xml
它包含了几乎所有IIS的配置信息,是非常重要的系统文件。简单的说,我们在“intenet服务管理器”中所作的一切设置最终都会被保存在MetaBase.bin中。在日常的系统管理中除了通过“intenet服务管理器”来对MetaBase文件进行操作外,Windows还提供了一个脚本adsutil.vbs可以对MetaBase.bin进行操作。
  MetaBase的结构类似于注册表,也是树形结构,有类似键、值、项的概念。事实上在IIS3和PWS中,MetaBase的内容就是存储在注册表中的。MetaBase有两个主键:LM和Schema。其中,Schema保存了系统默认的一些配置,通常不需要修改,一旦改错也非常危险,所以无论是“intenet服务管理器”还是adsutil.vbs都没有提供修改Schema的机制。LM中包含了IIS的HTTP服务,FTP服务,SMTP服务等的配置信息。其中,LM/W3SVC/下是我们要用到的HTTP服务的配置信息。到了IIS5后,就专门用了一个配置文件来存储有关IIS的配置信息,IIS配置文件就同等于REGEDIT注册表配置程序, MetaBase文件就同等于注册表数据库了.
故障分析:通过以上知识的介绍,我转到C:\WINDOWS\system32\inetsrv\(我的IIS是6.0)下发现还真没有了MetaBase.xml,但有一个MetaBase1.xml文件,我把文件名改过来,再运行IIS,结果还是出错,如下图所示:
 


 

虽然问题没有解决了,但有一点值得肯定,方向是找对了,因为有了配置文件,它出错的信息不一样了,看来问题出在配置文件的内容上,我想配置文件既然跟注册表一样,应该有自动备份吧,我按时间搜索了一下该目录下的所有文件,还真发现了,如下图:
 


 

这是在C:\WINDOWS\system32\inetsrv\History存在的文件,根据日期显示,它是今天的日期,而且从时间上来看,好像隔一段时间就有一个了.先不管它,把它恢复到C:\WINDOWS\system32\inetsrv\下,文件名改过来,启动IIS,成功了!
    看来对IIS配置文件的备份还得好好研究一下,备份IIS配置的方法有多种,下面做一一介绍。
    1、在IIS管理器中选择计算机图标然后单击右健。然后再选择“备份/恢复配置"。然后可以选择备份当前的元数据库设置或者恢复以前的版本,备份将以 .md0 文件的格式储存在 C:\winnt\system32\instrv\metaback 文件夹中,执行备份时,文件将使用您指定的名称,如 hbzj3z.md0。如果使用相同的文件名创建了多个备份,它们将使用数字逐渐递增的扩展名,如 hbzj3z.md0、hbzj3z.md1 等等。
    2、系统自动备份。默认设置下,IIS有一个配置数据库历史功能,通过用唯一的版本号标记每个新配置数据库文件(MetaBase.xml 和 MBSchema.xml )并将该文件的副本保存在历史文件夹中,配置数据库的历史功能可以自动跟踪保存到磁盘中的配置数据库更改。如果要修改历史功能的相关设置,如更改配置数据库历史功能的默认设置、禁用配置数据库的历史功能、更改存储在历史文件夹中历史文件的数量,需要编写程序。默认情况下,历史文件夹的位置为 systemroot\System32\Inetsrv\History,存储在历史文件夹中历史文件的数量不超过10 个带版本的历史文件对,历史文件对由具有相同的主要版本号和次要版本号的 MetaBase.xml 和 MBSchema.xml 文件组成。
    3、在IIS管理器中选择计算机图标然后单击右健。然后再选择“将配置保存到磁盘",此时系统自动对当前配置做备份,并将MetaBase.xml 和 MBSchema.xml 历史文件对保存到C:\WINDOWS\system32\inetsrv\History目录中。
    4、通过复制\粘贴方法把metabase.bin配置文件放到其它文件夹。但这时最好先停止 Internet 服务,以保证数据库是最新的并且不在使用状态中。
    反思:以前配置IIS,只在研究IIS配置程序,如何配置让它安全,稳定,高效.但确忽视了对配置文件的本身的研究,其实还有许多,比如在systemroot\System32\Inetsrv下还有好多所不熟悉的文件及文件夹,只有都熟悉它们存在的意义了,才会对IIS的配置做到得心应手。

文章如转载,请注明转载自:http://www.5iadmin.com/post/582.html