2010-07-01

[Asp.Net]Web.Config 設定小技巧

網站開發完成,實際上線之後會發現,以下幾種情況會重新啟動網站應用程式,進而造成使用者的狀態維護失效:
  • 改、新增、刪除Bin目錄下的組件。
  • 修改、新增、刪除App_GlobalResources或App_LocalResources目錄下的資源檔。
  • 修改、新增、刪除 Global.asax。
  • 修改、新增、刪除App_Code目錄下的原始程式碼檔。
  • 修改、新增、刪除 Profile設定。
  • 修改、新增、刪除App_WebReferences目錄下的Web參考。
  • 修改、新增、刪除web.config。
在正式上線環境中,以修改Web.config算是最常見的需求,那麼該如何設計讓管理者修改web.config設定檔時,不會影響到網站應用程式的運作
答案就是:使用外部組態檔。
也就是使用外部組態檔可以任意修改,且不需要重開IIS

外部組態檔的引用可以透過configSource屬性值定所要引用的組態檔是哪一個外部檔案。使用外部組態檔有以下幾個優點:
  1. 可針對不同的項目設定,來規劃模組化的結構
  2. 因為是使用另一個設定檔,所以可以加強安全性控管
  3. 隨時改變外部組態檔,並不會重新啟動應用程式
web.config中項目的設定,欲加入的tag 加上configSource 如: configSource="欲載入的檔案.config"
有了這樣的設定區段,隨時都能改變系統功能的設定,而不會造成目前網站上的使用者發生狀態遺失等問題,這算是相當不錯的項目屬性;當然ASP.NET V2.0以後版本才有支援這個設定。
[資料來源]:遺忘技術的角落 -ASP.NET外部組態檔小密技

例:
Web.config的連線字串
<configuration> 
<connectionstrings configsource="相對路徑\a.config" /> 
</configuration> 
a.config 
<?xml version="1.0" encoding="utf-8"?> 
<connectionStrings> 
<add name="a" connectionString="........" providerName="....." /> 
</connectionStrings> 

沒有留言:

張貼留言