在開發中經常會遇到這樣的情況,在部署程序時為了保密起見並不將源代碼隨項目一同發布,而我們開發時的環境與部署環境可能不一致(比如數據庫不一樣),如果在代碼中保存這些配置這些信息部署時需要到用戶那裡更改代碼再重新編譯,這種部署方式非常麻煩。
在.net中提供了一種便捷的保存項目配置信息的辦法,那就是利用配置文件,配置文件的文件後綴一般是.config,在asp.net中配置文件名一般默認是web.config。每個web.config文件都是基於XML的文本文件,並且可以保存到Web應用程序中的任何目錄中。在發布Web應用程序時web.config文件並不編譯進dll文件中。如果將來客戶端發生了變化,僅僅需要用記事本打開web.config文件編輯相關設置就可以重新正常使用,非常方便。
本篇要講述的知識如下:
配置文件的查找優先級
配置文件節點說明
配置文件的操作
配置文件的查找優先級
在.net提供了一個針對當前機器的配置文件,這個文件是machine.config,它位於%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\文件下(%windir%是系統分區下的系統目錄,在命令行模式下輸入%windir%然後回車就能查看當前機器的系統目錄,在Windows2003及WindowsXP中%windir%是系統分區下的windows目錄,在Windows2000中%windir%是系統分區下的WinNT目錄,在筆者機器上這個系統目錄是C:\WINDOWS)。這個文件裡面定義了針對當前機器的WinForm程序和asp.net應用程序的配置。下面是machine.config文件的內容:
在這個文件夾下還有一個web.config文件,這個文件包含了asp.net網站的常用配置。下面是這個web.config文件的內容:
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。