ASP.NET配置文件層次結(jié)構(gòu)和繼承淺析
您可以在整個(gè)應(yīng)用程序目錄中分發(fā) ASP.NET 配置文件,以便以繼承層次結(jié)構(gòu)配置 ASP.NET 應(yīng)用程序。使用此結(jié)構(gòu),可以在適當(dāng)?shù)哪夸浖?jí)別實(shí)現(xiàn)應(yīng)用程序所需級(jí)別的配置詳細(xì)信息,而不影響較高目錄級(jí)別中的配置設(shè)置。
ASP.NET配置文件配置結(jié)構(gòu)
ASP.NET 配置文件稱為 Web.config 文件,它們可以出現(xiàn)在 ASP.NET 應(yīng)用程序的多個(gè)目錄中。ASP.NET 配置層次結(jié)構(gòu)具有下列特征:
使用應(yīng)用于配置文件所在的目錄及其所有子目錄中的資源的配置文件。
允許您將配置數(shù)據(jù)放在將使它具有適當(dāng)范圍(整臺(tái)計(jì)算機(jī)、所有的 Web 應(yīng)用程序、單個(gè)應(yīng)用程序或該應(yīng)用程序中的子目錄)的位置。
允許重寫(xiě)從配置層次結(jié)構(gòu)中的較高級(jí)別繼承的配置設(shè)置。還允許鎖定配置設(shè)置,以防止它們被較低級(jí)別的配置設(shè)置所重寫(xiě)。
將配置設(shè)置的邏輯組組織成節(jié)的形式。
ASP.NET配置文件配置繼承
所有的 .NET Framework 應(yīng)用程序都從一個(gè)名為 systemroot\Microsoft .NET\Framework\versionNumber\CONFIG\Machine.config 的文件繼承基本配置設(shè)置和默認(rèn)值。Machine.config 文件用于服務(wù)器級(jí)的配置設(shè)置。其中的某些設(shè)置不能在位于層次結(jié)構(gòu)中較低級(jí)別的配置文件中被重寫(xiě)。
.NET 客戶端應(yīng)用程序(控制臺(tái)和 Windows 應(yīng)用程序)使用名為 ApplicationName.config 的配置文件來(lái)重寫(xiě)繼承的設(shè)置。ASP.NET 應(yīng)用程序使用名為 Web.config 的配置文件來(lái)重寫(xiě)繼承的設(shè)置。
ASP.NET 配置層次結(jié)構(gòu)的根是一個(gè)稱為根 Web.config 文件的文件,它與 Machine.config 文件位于同一個(gè)目錄中。根 Web.config 文件繼承 Machine.config 文件中的所有設(shè)置。根 Web.config 文件包括應(yīng)用于所有運(yùn)行某一具體版本的 .NET Framework 的 ASP.NET 應(yīng)用程序的設(shè)置。由于每個(gè) ASP.NET 應(yīng)用程序都從根 Web.config 文件那里繼承默認(rèn)配置設(shè)置,因此只需為重寫(xiě)默認(rèn)設(shè)置的設(shè)置創(chuàng)建 Web.config 文件。
ASP.NET配置文件集合元素中的繼承
某些配置元素是集合,例如,namespaces 元素和 customErrors 元素。
在集合中,通常通過(guò) add 子元素向集合中添加配置設(shè)置,通過(guò) remove 子元素按鍵名移除配置設(shè)置,或者可以通過(guò) clear 子元素清除整個(gè)集合。除非允許使用重復(fù)項(xiàng),否則,在子配置文件中添加的設(shè)置將重寫(xiě)父配置文件中同一鍵名的設(shè)置。
ASP.NET配置文件注意事項(xiàng)
存在于早期版本的 .NET Framework 中的某些集合對(duì) add 子元素使用不同的元素名稱。例如,customErrors 元素使用 error 子元素向集合中添加自定義錯(cuò)誤。
如果收到針對(duì) SubDir1 目錄中不存在的文件發(fā)出的請(qǐng)求,ASP.NET 將開(kāi)始搜索配置層次結(jié)構(gòu),并從最本地的 Web.config 文件(如果存在,可能位于當(dāng)前目錄中,也可能位于當(dāng)前目錄的父目錄中)開(kāi)始。ASP.NET 將搜索 statusCode 屬性等于“404”的 customErrors 的 error 元素(ASP.NET 設(shè)置架構(gòu))元素。一旦 ASP.NET 在配置設(shè)置中找到 404 錯(cuò)誤,將 redirect 屬性中的 URL 作為響應(yīng)返回。
ASP.NET配置文件層次結(jié)構(gòu)和繼承的相關(guān)信息就向你介紹到這里,希望對(duì)你了解ASP.NET配置文件層次結(jié)構(gòu)和繼承有所幫助。
【編輯推薦】