属性继承

属性继承使用尽可能少的属性设置来配置 IIS。使用最少的属性设置来配置 IIS 的好处如下:

配置数据库属性用于对 IIS 功能提供细节控制。所有的配置数据库属性都包含用于指定属性配置的特性,如 DefaultValue 特性。大多数配置数据库属性是可继承的,它们在 MBSchema.xml 中被指定为可继承属性。只能继承在 MBSchema.xml 中定义的属性,它们将字符串值“INHERIT”用作 Attributes 特性的值的一部分。下面的示例显示了 MBSchema.xml 中 HttpErrors 属性的默认特性:

<Property InternalName="HttpErrors"  Type="MULTISZ" UserType="IIS_MD_UT_FILE" 
Attributes="INHERIT" MetaFlagsEx="CACHE_PROPERTY_MODIFIED" DefaultValue=""/>

配置数据库属性参考中详细介绍了每个配置数据库属性。该参考包括有关属性是否可继承以及可在 MetaBase.xml 中的哪个位置设置属性的信息。

项的分层关系

配置数据库被设计为可在不同的项以不同的方式设置属性。要了解属性继承如何工作,首先需要了解不同项在 MetaBase.xml 文件中的分层关系。在 MetaBase.xml 中,一个项可相对于其他项位于更高层、更低层或同一层。每个项的位置特性都决定了该项位于分层结构中的哪一层。有关 MetaBase.xml 的分层结构的详细信息,请参阅配置数据库配置文件

示例 1

下面的示例说明了 IIsWebServiceIIsWebServerIIsWebVirtualDir 项之间的关系。在该示例中使用缩进来帮助说明项的分层关系。

<IIsWebService Location="/LM/W3SVC">
<IIsWebServer Location="/LM/W3SVC/1">
<IIsWebVirtualDir Location="/LM/W3SVC/1/ROOT">
<IIsWebServer Location="/LM/W3SVC/2">
<IIsWebVirtualDir Location="/LM/W3SVC/2/ROOT">

在示例 1 中,IIsWebService 项位于最高层。同样,IIsWebServer 项位于比 IIsWebService 低的层,IIsWebVirtualDir 项位于比 IIsWebServer 项低的层。位于同一层的项不能互相继承属性。因此,由于 IIsWebServer 项位于配置数据库中的同一层,所以它们不能互相继承属性。所有的 IIsWebVirtualDir 项也位于同一层,因此它们不能互相继承属性。

注意 注意 配置数据库的分层结构由项本身的 Location 特性(而不是项的类名)决定。

自动继承

未在较低层项显式设置的可继承属性会自动从已配置了属性的上一层项处继承。IIS_Global 项是 MetaBase.xml 中可在其中设置属性的最高层项;但是,所有可在 IIS_Global 项处设置的属性都不是可继承属性。因此,IIS_ROOT 项是 MetaBase.xml 中可从中继承属性的最高项。

示例 2

下面的示例说明了在 MetaBase.xml 中的不同项中以不同方式配置的属性,以及继承的属性。在特定配置数据库项设置的属性名以“粗体”文本显示。相反,从具有可继承属性集的上一层项处继承的属性名以纯文本显示。可扩展标记语言 (XML) 注释位于它们所对应的一个或多个属性前面。

<IIsWebService Location="/LM/W3SVC"
<!-- DefaultDoc 和 ContentIndexed 属性是专门针对该项设置的。-->
DefaultDoc="Default.htm,Default.asp"
ContentIndexed="FALSE"
>
<IIsWebServer Location ="/LM/W3SVC/1"
<!-- DefaultDoc 属性是专门针对该项设置的。-->
DefaultDoc="Default.htm,Default.asp,index.htm"
<!-- ContentIndexed 属性是从 IIsWebService 项继承的。-->
>
</IIsWebServer>
<IIsWebVirtualDir Location ="/LM/W3SVC/1/ROOT"
<!-- DefaultDoc 和 ContentIndexed 属性是从 /LM/W3SVC/1 位置继承的。-->
>
</IIsWebVirtualDir>
<IIsWebServer Location ="/LM/W3SVC/2"
<!-- DefaultDoc 和 ContentIndexed 属性是从 IIsWebService 项继承的。-->
>
</IIsWebServer>
<IIsWebVirtualDir Location ="/LM/W3SVC/2/ROOT"
<!-- DefaultDoc 属性是从 /LM/W3SVC/2 位置继承的。-->
<!-- ContentIndexed 属性是专门针对该项设置的。-->
ContentIndexed="TRUE"
>
</IIsWebVirtualDir>
</IIsWebService>
相关主题

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