ASP.NET 設定檔縱橫談(一)

來源:互聯網
上載者:User

前言:之所以寫這個系列的文章的緣由來自於Jeffery Zhao.之前看老趙的“MVC"講座的時候,記得老趙曾經說過:一個真正的ASP.NET程式員應該對設定檔web.config要很熟練,而且對於設定檔的節點的相關知識都要很瞭解,現有的很多的ASP.NET書籍都只是講控制項怎麼使用等等,而且現有的一些參考文檔都是只是講講配置節點怎麼使用,很少詳細的講述設定檔的(註:老趙的原話不是這樣的:)。所以這裡我大膽的寫了本系列的文章,有欠妥當的地方還望大家見諒!

首先我們就來看看設定檔的繼承層次。都知道在ASP.NET中有很多的設定檔,如machine.config,web.config,特別是web.config出現在很多的地方,出現在不同的地方作用也不一樣。而且我們還知道machine.config中的配置對伺服器上所有ASP.NET網站起作用,而web.config中的配置就依據它所在的位置而定,如在一個網站根目錄中的web.config就對整個網站起作用,在一個網站中的某個檔案夾中的web.config就只對該檔案夾起作用,而且網站跟目錄中的web.config中的配置也對這個檔案夾起作用。這就反映出了另外一個事實:設定檔是有繼承層次的. 換個角度,對於一個網站中的某個檔案夾,它不僅僅只是受本檔案夾中web.config的配置約束,而且還收到本網站中根目錄下的web.config的約束,而且還受到本台伺服器上的machine.config的約束。

 

下面我們就來具體的看看ASP.NET中的設定檔的繼承層次:

     1.machine.confiig-在ASP.NET中,很多的預設的配置都是定義在這個設定檔中的,但是有一些配置已經從machine.config中移出到別的地方了,為了縮短ASP.NET的載入時間。我們知道在運行一個ASP.NET程式的時候,ASP.NET運行時是要載入很多的設定檔的,當然machine.config是一定要載入的,但是其中有些配置不是必須的,所以就移到別的地方,如果用到就載入。

 

     2.在安裝根目錄中的web.config-在%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG中的設定檔,之前說過machine.config把很多的配置移出了,就放在這個配置中。

 

     3.在根目錄中的web.config-我們也可以把web.config放在根目錄中,讓它對整個根目錄起作用。如:c:\inetpub\wwwroot.因為我們可以建立很多的虛擬目錄檔案夾,檔案夾中有網站程式,如果把設定檔放在虛擬目錄中,那麼配置就對整個檔案夾中的網站起作用。

 

     4.一個網站中的web.config-這是我們最常見的配置地方。

     5網站中的某個檔案夾中的web.config-我們常常通過這個設定檔來限制對檔案的存取權限。

 

     上次就是設定檔的層次關於,下一級的設定檔的作用是在它上面所有配置約束的總和。就是說:一個網站中的檔案夾的配置約束是machine.config+web.config+...+web,config(這個說法不是很恰當,希望大家明白意思就好)。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.