快速业务通道

ASP.NET配置文件层次结构和继承

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

您可以在整个应用程序目录中分发 ASP.NET 配置文件,以便以继承层次结构配置 ASP.NET 应用程序。使用此结构,可以在适当的目录级别实现应用程序所需级别的配置详细信息,而不影响较高目录级别中的配置设置。

配置结构

ASP.NET 配置文件称为 Web.config 文件,它们可以出现在 ASP.NET 应用程序的多个目录中。ASP.NET 配置层次结构具有下列特征:

使用应用于配置文件所在的目录及其所有子目录中的资源的配置文件。

允许您将配置数据放在将使它具有适当范围(整台计算机、所有的 Web 应用程序、单个应用程序或该应用程序中的子目录)的位置。

允许重写从配置层次结构中的较高级别继承的配置设置。还允许锁定配置设置,以防止它们被较低级别的配置设置所重写。

将配置设置的逻辑组组织成节的形式。

配置继承

所有的 .NET Framework 应用程序都从一个名为\Microsoft .NET\Framework\版本号\CONFIG\Machine.config的文件继承基本配置设置和默认值。Machine.config 文件用于服务器级的配置设置。其中的某些设置不能在位于层次结构中较低级别的配置文件中被重写。

.NET 客户端应用程序(控制台和 Windows 应用程序)使用名为 ApplicationName.config 的配置文件来重写继承的设置。ASP.NET 应用程序使用名为 Web.config 的配置文件来重写继承的设置。

ASP.NET 配置层次结构的根是一个称为根 Web.config 文件的文件,它与 Machine.config 文件位于同一个目录中。根 Web.config 文件继承 Machine.config 文件中的所有设置。根 Web.config 文件包括应用于所有运行某一具体版本的 .NET Framework 的 ASP.NET 应用程序的设置。由于每个 ASP.NET 应用程序都从根 Web.config 文件那里继承默认配置设置,因此只需为重写默认设置的设置创建 Web.config 文件。

集合元素中的继承

某些配置元素是集合,例如,namespaces 元素和 customErrors 元素。

在集合中,通常通过 add 子元素向集合中添加配置设置,通过 remove 子元素按键名移除配置设置,或者可以通过 clear 子元素清除整个集合。除非允许使用重复项,否则,在子配置文件中添加的设置将重写父配置文件中同一键名的设置。

注意

存在于早期版本的 .NET Framework 中的某些集合对 add 子元素使用不同的元素名称。例如,customErrors 元素使用 error 子元素向集合中添加自定义错误。

如果收到针对 SubDir1 目录中不存在的文件发出的请求,ASP.NET 将开始搜索配置层次结构,并从最本地的 Web.config 文件(如果存在,可能位于当前目录中,也可能位于当前目录的父目录中)开始。ASP.NET 将搜索 statusCode 属性等于“404”的 customErrors 的 error 元素(ASP.NET 设置架构)元素。一旦 ASP.NET 在配置设置中找到 404 错误,将 redirect 属性中的 URL 作为响应返回。

配置设置的范围

配置设置具有不同的范围 - 有些具有全局范围,有些仅对应用程序范围(根 Web.config 文件或 Machine.config 文件)有效。

配置节的范围是在 Machine.config 文件中的 configSections 的 section 元素(常规设置架构)元素的 allowDefinition 属性中为包含在 ASP.NET 中的所有节定义的。例如,authentication 元素(ASP.NET 设置架构)元素具有 MachineToApplication 元素的 allowDefinition 属性。这意味着,authentication 元素可以在应用程序级别的 Machine.config 文件、根 Web.config 文件和 Web.config 文件中设置。如果它是在子目录级别设置的,则会引发错误。如果没有为某个节定义 allowDefinition 属性,则默认值为 Everywhere。

“元素信息”表中“可配置的位置”旁边列出了 ASP.NET 配置设置 和 常规配置设置 (ASP.NET) 中每个元素的配置设置范围。

下表列出了每个文件在配置层次结构中的

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号