将更改写入到 MetaBase.xml 中

使用常见的文本编辑工具(如 Microsoft 记事本)直接编辑 MetaBase.xml 文件是通过低带宽连接对配置数据库进行配置的高效方法。用记事本编辑 MetaBase.xml 比使用 IIS 管理器效率高,因为 IIS 管理器在低带宽线路(如 56 KB 调制解调器)上相对较慢。另外,当在同一台计算机上运行成百上千个站点时,直接编辑配置数据库文件比通过 IIS 管理器等用户界面 (UI) 要快。直接编辑 MetaBase.xml 文件对于不希望使用编程方法来管理 IIS 但是希望用其他方法来替代 UI 方法的管理员来说尤其有用。

只有当启用了运行时编辑功能时,才能在 IIS 正在运行时更改 MetaBase.xml 文件。否则,在编辑 MetaBase.xml 文件之前必须停止 IIS。

警告 警告 如果在存在挂起的配置数据库更改(即,配置数据库更改仍保留在内存中,但是尚未写入磁盘)时重新启动 IIS,则除非您启用了运行时编辑功能,否则挂起的更改将丢失。如果打算更改配置数据库然后重新启动 IIS,请确保启用了运行时编辑功能。

因为可以对 MetaBase.xml 进行编辑,所以如果管理员直接更改 MetaBase.xml 文件,可能会导致致命的格式错误和可恢复的配置数据库架构错误。如果在文本编辑过程中创建了结构不好的可扩展标记语言 (XML),则会发生严重的格式错误,如 XML 标记丢失。如果 MetaBase.xml 包含致命的格式错误,则 IIS 无法启动。如果在文本编辑过程中生成了结构完善的 XML,但是一个或多个属性对于配置数据库架构无效,则会发生可恢复的配置数据库架构错误。IIS 通过还原到以前的历史文件来修复大多数配置数据库格式错误。不建议编辑配置数据库架构。

要点 要点 您必须是本地计算机上 Administrators 组的成员或者必须被委派了相应的权限,才能执行下列步骤。作为安全性的最佳操作,请使用不属于 Administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份执行该步骤。

配置数据库属性

要了解配置数据库属性,首先应了解 XML 和配置数据库术语。有关这些术语的信息,请参阅配置数据库配置文件

您可以将 MetaBase.xml 中的配置数据库属性编写为架构内属性或自定义属性。编写架构内属性可以有效地使用 IIS 缓存(其中存储了内存中配置数据库和架构),因为特性是从架构继承而不是为属性的每个实例重写的。若不希望从特定属性的配置数据库架构继承特定特性或所有特性时,可以使用自定义属性。当您希望定义未在配置数据库架构中指定的属性时,也可以使用自定义属性。

架构内属性包含在项的开始标记中,并且只定义了属性名和值。架构内属性的特性是从配置数据库架构继承来的。在下面的示例中,EnableEditWhileRunning 属性被定义为值为零的架构内属性,写在 IIs_Computer 项中:

<IIs_Computer Location="/LMquot;
  EnableEditWhileRunning="0"
>

自定义属性定义了属性的部分或全部特性。与架构内属性不同,自定义属性写在配置数据库项的 XML 开始标记和结束标记之间。因为包含自定义属性的元素的名称是 Custom,所以自定义属性易于识别。自定义属性的名称和特性包含在名为 Custom 的 XML 元素中。

在自定义属性中,必须至少定义 nameID 特性。除了属性的名称和 ID 特性,自定义属性的所有未定义的特性都从架构中继承。只有当您希望特性包含的值不同于在架构中定义的特性值时,才需要定义其他特性。在下面的示例中,Win32Error 属性被定义为值为零的自定义属性,写在 IIsFtpVirtualDir 项中。

<IIsFtpVirtualDir Location="/LM/MSFTPSVC/1/ROOT"
  >
     <Custom
       Name="Win32Error"
       
       Value="0"
       Attributes="INHERIT"
  />
</IIsFtpVirtualDir>

要点 要点 在架构 (MBSchema.xml) 中定义的每个属性都有唯一的 ID 特性。如果将已知属性定义为自定义属性,必须为该属性指定唯一的 ID 号。要查看在 MBSchema.xml 中定义的任何属性的唯一 ID 号,请参阅配置数据库属性参考

常规备注

编写架构内或架构外更改

可以基于以下目的使用自定义属性:

当使用与在架构中定义的特性值不同的值编写属性时,必须将属性编写成自定义属性。只有与架构不同的特性才必须在 MetaBase.xml 中定义。

示例

相关主题

© 1997-2003 Microsoft Corporation。保留所有权利