配置数据库配置文件

配置数据库配置文件(在默认情况下名为 MetaBase.xml)用于存储 IIS 配置设置。MetaBase.xml 文件按照层次结构进行组织,根据在安装 IIS 时选择的选项,该结构会有所不同,如果可以的话,可在以后重新配置。当启动或重新启动 IIS 时,会从 MetaBase.xml 中读取配置设置并将其复制到内存中的 IIS 缓存中,这时称为“内存中的配置数据库”。当使用 IIS 管理器或编程接口更改 IIS 配置时,在更改数超过事先配置的数量之后或者按照定期时间间隔,所做更改将应用到内存中的配置数据库并保存在 MetaBase.xml 中。

因为 MetaBase.xml 是纯文本文件,所以您可以使用常见的编辑工具(如 Microsoft 记事本)读取和配置它。建议您在试图通过更改 MetaBase.xml 文件来配置 IIS 之前,先熟悉 MetaBase.xml 的结构。

XML 的专用术语

因为 MetaBase.xml 是可扩展标记语言 (XML) 文件,所以熟悉 XML 术语和配置数据库术语有助于理解 MetaBase.xml 文件的结构。下表定义了这两类术语。MetaBase.xml 文件的结构是用 MetaBase.xml 代码示例中的相关术语来表示的。

XML 术语

MetaBase.xml 文件是用 XML 元素构造的。下表标识和定义了 XML 术语并将它们与在 MetaBase.xml 中的用途相关联。

表 1:XML 术语和与 MetaBase.xml 的关系

术语XML 描述与 MetaBase.xml 的关系
XML 声明 位于 XML 文档开头的处理指令,如 <?xml version ="1.0"?>,用于将文件声明为 XML 代码。 MetaBase.xml 中的第一行是 XML 声明。
元素 信息的逻辑单元。元素由 <element name> 和 </element name> 标记包围,其中 element name 是元素的名称。元素可以包含特性。 项和自定义属性是使用 XML 元素编写的。
根元素 一个包含构成 XML 文档的所有其他元素和字符数据的元素;又称为“文档元素”。 MetaBase.xml 包含名为 <configuration> 的根元素。
开始标记 用于标记元素开头的标记,如 <element name>,其中 element name 是元素的名称。 在 MetaBase.xml 中,开始标记用于标识项或自定义属性的开头。
结束标记 用于标记元素结尾的标记,如 </element name>,其中 element name 是元素的名称。 在 MetaBase.xml 中,结束标记用于标识项或自定义属性的结尾。
元素类型 由出现在开始标记和结束标记中的名称表示。 在 MetaBase.xml 中,配置数据库项的元素类型实际上是 KeyType 属性的值。例如,IIsWebService 是用于标识万维网发布服务(WWW 服务)项的 KeyType。自定义属性使用名称 Custom 作为元素类型。
特性 与元素相关并提供有关该元素内容的详细信息的名称/值对。 配置数据库属性包含了几个描述属性特征的特性,如数据类型或值。项也包含属性,如 IIsWebService 项中包含 Location 特性或 DefaultDoc 特性。
注释 由 <!-- 和 --> 标记分隔的文本段,其中包含的文字不作为文档来对待。 在 MetaBase.xml 中,注释由 <!-- 和 --> 标记分隔,且必须写在相关项的上方。如果将注释放在某个 XML 节点内部,则该节点将被删除。同样,不允许将注释放在 IIS_Global 节点上方。

配置数据库术语

MetaBase.xml 是使用项构造的。项类似于文件系统中的文件夹或注册表中的注册项。每个项都包含一个 Location 特性,用于指定该项在配置数据库中的层次结构位置。项中包含了用于定义配置 IIS 的值的属性。因为 MetaBase.xml 采用分层结构,所以可在不同的项以不同的方式配置特定属性。属性中包含特性,如 Value 特性。一些属性(如 AccessFlags 属性)还包含标志。有关在架构内定义的所有属性及其特性的更详细列表,请参阅配置数据库属性参考

下表概述了用于描述 MetaBase.xml 的结构的配置数据库术语。在本主题的后面将详细讨论这些术语。

表 2:MetaBase.xml 术语

术语描述
MetaBase.xml 中用来包含属性的分层容器。每个项都在其开始标记中包含了 Location 特性,指定该项在 MetaBase.xml 中的层次结构位置。配置数据库项类似于文件夹或注册表项。
位置 每个项都包含了用于唯一地标识该项在 MetaBase.xml 中的层次结构位置的 Location 特性,它由一系列用正斜杠 (/) 分隔的位置名组成。例如,“/LM”是 IIsComputer 项的位置名称,“/LM/W3SVC”是 IIsWebService 项的位置。后者是“LM”位置的子项。子项是指包含在另一个项中的项。
属性或自定义属性 属性或自定义属性定义了用于配置 IIS 的值。属性中包含特性,一些属性(如 AccessFlags)还包含标志。属性包含在项中,且可在 MetaBase.xml 中写为架构内属性或自定义属性。
特性 配置数据库属性包含了几个描述属性特征的特性,如数据类型或值。项也包含属性,如 IIsWebService 项中包含了 Location 特性或 DefaultDoc 特性。
标志 标志是包含标志的属性的 DWORD 值中的特定位。属性中的每个标志都用于配置属性的特定功能,如读取或写入访问。一个属性的标志值总和便是该属性的值特性的总和。

有关属性、特性和标志的详细信息,请参阅配置数据库架构主题。有关将属性作为架构内属性或自定义属性写入到 MetaBase.xml 中的详细信息,请参阅将更改写入到 MetaBase.xml 中

项和位置

配置数据库项类似于注册表项或文件系统中的目录。每个配置数据库项都由其名称和位置(在项的开始标记中定义)标识。下面的示例显示了两个项:IIsConfigObjectIIsLogModules。每个项都有一个由各自的 Location 特性值定义的唯一位置:

注意 注意 为了便于阅读,下面示例中的注释并不遵循用于规定在配置数据库中正确放置注释或设置格式的配置数据库规则。有关配置数据库注释的信息,请参阅添加配置数据库注释


<IIsConfigObject Location="/LM/IISADMIN" (comment) Properties are defined here > <IIsLogModules Location="/LM/Logging" (comment) Properties are defined here </IIsLogModules>

大多数项都是使用 KeyType 属性的值命名的,该属性也称作管理基本对象 (ABO) 类名,它与定义的项类型相关。上述示例中的 IIsLogModules 项就是按这种方式命名的。如果以编程方式更改配置数据库项的 KeyType 值,则在保存内存中的配置数据库时,该项的名称会在 MetaBase.xml 中发生变化。KeyType 值非常重要,因为架构内使用相同的 KeyType 命名的集合会限制项可以包含的属性。

名为 IIsConfigObject 的项是特殊项,因为它们不是使用 KeyType 值命名的。因为所有属性都是在架构内的 IIsConfigObject 集合中定义的,所以 MetaBase.xml 中名为 IIsConfigObject 的项可以包含任何属性。可以通过在项中将 KeyType 属性编写为自定义属性,来为名为 IIsConfigObject 的项指定 KeyType 值。

对于所有的项,项名称不必保持唯一,与此不同的是,Location 特性的值对于每一项必须保持唯一。Location 特性定义了项在 MetaBase.xml 中的层次结构位置。除了仅有的两个例外情况外,Location 特性值由一系列用正斜杠 (/) 分隔的位置名称组成,用于唯一地标识项在 MetaBase.xml 中的层次结构位置。

这两个例外是 IIS_Global 项和 IIS_ROOT 项,前者位于 MetaBase.xml 中的最高层次结构位置 (Location ="."),后者位于 MetaBase.xml 中的第二高的层次结构位置 (Location ="/")。接下来最高的层次结构位置是 IIsComputer 项 (Location ="/LM")。MetaBase.xml 中所有的其余项都包含在 IIsComputer 项中;因此,它们的位置总是以 /LM/location name 开始,其中 location name 是指位置的名称。

任何配置数据库项的层次结构位置可通过查看其 Location 特性来确定。例如,“/LM”是 IIsComputer 项的位置,“/LM/W3SVC”是 IIsWebService 项的位置。因为“/LM/W3SVC”位置以“/LM”开始,后面跟着正斜杠字符 (/) 和另一个位置名 (W3SVC),位于“/LM/W3SVC”的 IIsWebService 项是 IIsComputer 项的子项。“子项”是指包含在另一个项中的项。包含另一个项的项有时称作“父项”。

配置数据库结构

在本主题后面的 MetaBase.xml 示例将说明本节中介绍的配置数据库项和元素。

与任何其他 XML 文件一样,XML 声明 <?xml version ="1.0"?> 占据 MetaBase.xml 中的第一行,表明该文件采用 XML 格式。名为 <configuration> 的根元素包含了所有其他元素。

IIS_Global 项位于包含属性的配置数据库中的最高层。应该将 IIS_Global 项配置视为只读;不要配置其属性。

IIS_ROOT 项 (Location ="/") 是可为其配置属性的最高项。在 IIS_ROOT 项配置的属性影响 IIS 的总体运行方式。

IIsComputer 项 (Location ="/LM") 包含了所有其余配置数据库位置。表 3 按层次结构顺序列出了可存在于 /LM 位置的名称空间中的子位置。在默认情况下,不安装文件传输协议 (FTP)、网络新闻传输协议 (NNTP) 和简单邮件传输协议 (SMTP) 组件。因此,/LM/EventManager、/LM/NNTPSVC 和 /LM/SmtpSvc 位置不会在 MetaBase.xml 中存在,除非安装了它们各自的组件。

本地计算机名称空间

本地计算机 ("LM") 名称空间是项的层次结构中的父位置,用于组织所有服务和站点。其中的每个项都包含其各自的唯一位置,并按照如下格式组织:

/LM/Service/Site/ROOT/Virtual Directory/Directory/File

其中,可替换的参数是:

Service = MSFTPSVC、NNTPSVC、SmtpSvc 或 W3SVC
SiteIdentifier = FTP、NNTP、SMTP 或 Web、站点的唯一数字标识符
ROOT = 站点的根虚拟目录
Virtual Directory = 虚拟目录
Directory = 物理目录
File = 文件

每个站点都是一个服务器实例,它由在其名称空间中使用的数字引用。例如,/LM/W3SVC/1 指定了包含第一个网站的项的位置,/LM/MSFTPSVC/3 指定了包含第三个 FTP 站点的项的位置。

下表列出了包含在“LM”名称空间中的父项的位置。因为它们的子项太多,所以未在此处列出。有关可在其中配置特定属性的所有位置的列表,请参阅配置数据库属性参考

表 3:本地计算机位置

位置描述
/LM/EventManager /LM/EventManager 位置及其子位置用于配置 Microsoft Exchange。不应该通过编辑 MetaBase.xml 文件来在 /LM/EventManager 位置或其子项配置项。
/LM/IISADMIN /LM/IISADMIN 位置及其子位置记录了 IIS 的分布式 COM (DCOM) 扩展。因为 /LM/IISADMIN 位置由 IIS 内部配置,所以您不应该配置 /LM/IISADMIN 或其子位置。
/LM/Logging /LM/Logging 位置及其子位置用于配置 IIS 日志记录。
/LM/MimeMap /LM/MimeMap 位置用于配置 MimeMap 属性。
/LM/MSFTPSVC /LM/MSFTPSVC 位置及其子位置用于配置 FTP 服务和站点。
/LM/NNTPSVC /LM/NNTPSVC 位置及其子位置用于配置 NNTP 服务和站点。
/LM/SmtpSvc /LM/SmtpSvc 位置及其子位置用于配置 SMTP 服务和站点。
/LM/W3SVC /LM/W3SVC 位置及其子位置用于配置 WWW 服务的全局属性。
/LM/W3SVC/1 /LM/W3SVC/1 位置及其子位置用于配置第一个网站特有的属性。
/LM/W3SVC/AppPools /LM/W3SVC/AppPools 位置用于配置所有应用程序池的全局属性。子位置(如 /LM/W3SVC/AppPools/DefaultAppPool)用于配置特定应用程序池特有的属性。
/LM/W3SVC/Filters /LM/W3SVC/Filters 位置及其子位置用于配置 Internet 服务器 API (ISAPI) 筛选器和压缩方案。
/LM/W3SVC/Info /LM/W3SVC/Info 位置用于配置所有网站的全局属性。
/LM/W3SVC/Info/Templates 在早期版本的 IIS 中,/LM/W3SVC/Info/Templates 位置及其子位置由 IIS 权限向导使用。保留它的目的只是为了与旧版本兼容。不应该通过编辑 MetaBase.xml 文件来在 /LM/W3SVC/Info/Templates 位置配置项。

MetaBase.xml 示例

下面的代码示例说明了 MetaBase.xml 文件的结构。XML 注释位于它们所属的每一行的前面,描述配置数据库的结构。在 XML 注释中,用“粗体”显示配置数据库术语,用“斜体”显示 XML 术语。

请注意,在该示例中,IIsWebServer 项有两个实例,每个实例都有一个唯一的位置。第一个是 /LM/W3SVC/1 项,可在该项中配置默认网站。第二个是 /LM/W3SVC/2 项,可在其中配置第二个网站。在实际应用中,默认网站的数字为 1,但是为创建的任何其他网站分配的数字都是随机数。

注意 注意 为了便于阅读,下面的示例中注释并不遵循用于规定在配置数据库中正确放置注释或设置格式的配置数据库规则。有关配置数据库注释的信息,请参阅添加配置数据库注释

(comment) The XML declaration
<?xml version ="1.0"?>
(comment) The Root Element
<configuration xmlns="urn:microsoft-catalog:XML_Metabase_V2_0">
(comment) Element
<MBProperty>
(comment) Key, Start tag containing a location attribute
<IIS_Global Location ="."
     (comment) Property (in-schema)
     BINSchemaTimeStamp="c0ed73cdbcd8c001"
     (comment) Property (in-schema)
     ChangeNumber="888"
     (comment) Property (in-schema)
     HistoryMajorVersionNumber="154"
>
(comment) End tag
</IIS_Global>
(comment) Key, Start tag containing a location attribute
<IIS_ROOT  Location ="/"
     (comment) Property (in-schema)
     AdminACL="A really long number"
>
(comment) End tag
</IIS_ROOT>
(comment) Key, Start tag containing a location attribute
<IIsComputer Location="/LM"
     (comment) Property (in-schema)
     MaxBandwidth="4294967295"
     (comment) Property (in-schema)
     EnableEditWhileRunning="0"
     >
(comment) End tag
</IIsComputer>
(comment) Key, Start tag containing a location attribute
<IIsWebService Location="/LM/W3SVC"
     (comment) Property (in-schema)
     AllowKeepAlive="TRUE"
     (comment) Property (in-schema)
     AnonymousPasswordSync="TRUE"
     >
(comment) End tag
</IIsWebService>
(comment) Key, Start tag containing a location attribute
<IIsWebServer Location="/LM/W3SVC/1"
     (comment) Property (in-schema)
     AppPool
     (comment) Property (in-schema)
     DefaultDoc="Default.htm,Default.asp"
     (comment) Property (in-schema)
     ServerComment="Default Web Site"
     >
     (comment) Property (custom)
     <Custom
(comment) Attributes
     Name="SecureBindings"
     
     Value=":443:"
     Type="MULTISZ"
     UserType="IIS_MD_UT_SERVER"
     Attributes="NO_ATTRIBUTES"
     />
(comment) End tag
</IIsWebServer>
(comment) Key, Start tag containing a location attribute
<IIsWebServer Location ="/LM/W3SVC/2"
     (comment) Property (in-schema)
     SecureBindings=""
     (comment) Property (in-schema)
     ServerBindings=":6186:"
     (comment) Property (in-schema)
     ServerComment="My 2nd Web Site"
>
(comment) End tag
</IIsWebServer>
(comment) End tag
</MBProperty>
(comment) End tag
</configuration>

相关主题


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