2011-01-30 113 views
0

我想存儲有關給定站點實例的一些元信息,這些信息可以(a)由該站點實例管理,並(b)持續打破Web.config文件的破壞。 該網站將運行在多個環境(開發,測試,分期和生產),每個環境可以有不同的元數據值。 注意:所有環境都運行IIS 7.0+在代碼中修改根目錄Web.config

根Web.config似乎非常有吸引力,因爲它肯定在網站之外。因此,可以在維護元數據的同時更改文件和數據庫。我已經看到如何修改存儲在網站中的Web.config的appSettings,但是是否可以類似地修改Root Web.config中的appSettings(特別是在正確的指令中)?

如果您有其他建議來解決這個問題,我會很高興聽到他們。謝謝!

回答

0

,如果我的假設是不正確的,在web.config不會是不會使用的web.config運行時修改,這將導致應用程序循環,甚至類似的app.config

配置文件的一些其他形式在應用程序啓動後編輯,然後您可以使用WebConfigurationManager訪問文件部分

+0

謝謝你的答案。還有一件小事讓我繼續搜索,那就是應該使用null作爲虛擬路徑參數來引用根web.config。 WebConfigurationManager.OpenWebConfiguration(空) – 2011-01-30 21:30:10

0

是的,你可以模塊化你的web.config中的應用程序設置只需使用System.Web.Configuration命名空間中的WebConfigurationManager類來創建一個配置對象。然後可以使用該對象讀取和寫入對web.config文件的更改。

然後,您可以創建自己的「密鑰」或屬性,以便根據需要進行讀取。

根據你的屬性代表什麼,或者如果他們需要從該服務器的多個環境中挑選出來,我還會考慮在machine.config文件中進行修改,然後這些設置將應用於輸入機器,由多個環境提取(如果您正在從服務器託管多個webapps)。這可以節省您修改多個web.config文件的時間,並在某些情況下將存儲或元數據縮減到一個位置與多個配置文件。