程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET配置文件層次結構和繼承

ASP.NET配置文件層次結構和繼承

編輯:關於ASP.NET

您可以在整個應用程序目錄中分發 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) 中每個元素的配置設置范圍。

下表列出了每個文件在配置層次結構中的級別、每個文件的名稱以及對每個文件的重要繼承特征的說明。

配置級別 文件名 文件說明 服務器 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 應用程序)的設置。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved