ASP.NET 配置文件层次结构和继承
2008-02-22 09:38:16来源:互联网 阅读 ()
配置结构
ASP.NET 配置文件称为 Web.config 文件,它们可以出现在 ASP.NET 应用程序的多个目录中。ASP.NET 配置层次结构具有下列特征:
使用应用于配置文件所在的目录及其所有子目录中的资源的配置文件。
允许您将配置数据放在将使它具有适当范围(整台计算机、所有的 Web 应用程序、单个应用程序或该应用程序中的子目录)的位置。
允许重写从配置层次结构中的较高级别继承的配置设置。还允许锁定配置设置,以防止它们被较低级别的配置设置所重写。
将配置设置的逻辑组组织成节的形式。
配置继承
所有的 .NET Framework 应用程序都从一个名为 systemroot\Microsoft .NET\Framework\versionNumber\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) 中每个元素的配置设置范围。
下表列出了每个文件在配置层次结构中的级别、每个文件的名称以及对每个文件的重要继承特征的说明。
配置级别 | 文件名 | 文件说明 |
服务器 | Machine.config | Machine.config文件包含服务器上所有 Web 应用程序的 ASP.NET 架构。此文件位于配置合并层次结构的顶层。 |
根Web | Web.config | 服务器的 Web.config 文件与 Machine.config 文件存储在同一个目录中,它包含大部分 system.web 配置节的默认值。运行时,此文件是从配置层次结构中的从上往下数第二层合并的。 |
网站 | Web.config | 特定网站的 Web.config 文件包含应用于该网站的设置,并向下继承到该站点的所有 ASP.NET 应用程序和子目录。 |
ASP.NET应用程序根目录 | Web.config | 特定 ASP.NET 应用程序的 Web.config 文件位于该应用程序的根目录中,它包含应用于 Web 应用程序并向下继承到其分支中的所有子目录的设置。 |
ASP.NET 应用程序子目录 | Web.config | 应用程序子目录的 Web.config 文件包含应用于此子目录并向下继承到其分支中的所有子目录的设置。 |
客户端应用程序目录 | ApplicationName.configApplicationName.config | 文件包含 Windows 客户端应用程序(而非 Web 应用程序)的设置。 |
ProcessModel 元素
processModel 元素(ASP.NET 设置架构)元素配置用于服务器(包括服务器上的所有 ASP.NET 应用程序)的处理模型。因此,processModel 设置只能放在 Machine.config 文件中,而且不能被任何 Web.config 文件中的设置重写。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash