是的, Windows 虛擬主機 皆支援 「web.config」設定檔。
web.config 為 Windows IIS 伺服器設定伺服器相關權限的檔案, 可支援使用者解決一些客製化顯示伺服器訊息的結果。ASP.NET 會使用 XML 文字檔的階層架構 (每個檔案都名為 Web.config),儲存可控制網站運作方式的設定。使用 ASP.NET 組態系統的功能,您便可以設定整個伺服器、ASP.NET 應用程式或個別網頁。
ASP.NET 網站 IIS 啟動的時候會加載配置文件中的配置訊息,然後緩存這些訊息,這樣就不必每次去讀取配置訊息。在運行過程中 ASP.NET 應用程序會監視配置文件的變化情況,一旦編輯了這些配置訊息,就會重新讀取這些配置訊息並緩存。
當我們要讀取某個節點(目錄)或者節點組訊息時,是按照如下方式搜索的:
- (1) 如果在當前頁面所在目錄下存在 web.config 文件,查看是否存在所要查找的節點名稱,如果存在返回結果並停止查找。
- (2) 如果當前頁面所在目錄下不存在 web.config 文件或者 web.config 文件中不存在該節點名,則查找它的上級目錄,直到網站的根目錄。
- (3) 如果網站根目錄下不存在 web.config 文件或者 web.config 文件中不存在該節點名則在 %windir%/Microsoft.NET/Framework/v2.0.50727/CONFIG/web.config 文件中查找。
- (4) 如果在%windir%/Microsoft.NET/Framework/v2.0.50727/CONFIG/web.config文件中不存在相應結點,則在%windir%/Microsoft.NET/Framework/v2.0.50727/CONFIG/machine.config文件中查找。
- (5) 如果仍然沒有找到則返回null。
所以如果我們對某個網站或者某個文件夾有特定要求的配置,可以在相應的文件夾下創建一個 web.config 文件,覆蓋掉上級文件夾中的 web.config 文件中的同名配置即可。這些配置訊息的尋找只查找一次,以後便被緩存起來供後來的調用。在 ASP.NET 應用程序運行過程中,如果 web.config 文件發生更改就會導致相應的應用程序重新啟動,這時存儲在服務器內存中的用戶會話訊息就會丟失(如存儲在內存中的Session)。
備註:需注意 IIS7 與 IIS6 針對 web.config 的撰寫方式不同。 |