2010-03-04 65 views
3

我有下面的代碼行調用非常頻繁:每次檢索web.config值時,是否都會將磁盤「擊中」?

var configValue = System.Configuration.ConfigurationManager.AppSettings["ConfigValueKey"]; 

難道我坐盤創出ASP.Net來檢索web.config中的項目,或者是足夠聰明的緩存值內存,並且只在web.config更改時刷新緩存?

+2

如果您想驗證自己,請從Technet下載ProcessMonitor ... – 2010-03-04 15:51:34

回答

5

配置數據保存在內存中。但是,ASP.NET會監視web.config中的更改,並在文件更改時回收應用程序域。

除此之外,所有用戶會話都將丟失,這就是爲什麼在應用程序運行時觸摸web.config並不是一件好事。

+5

如果您正在使用會話,會話數據只會丟失。如果你正在使用會話服務器或sql會話,你不應該有這個問題。 – 2010-03-05 15:02:45

+0

@Daniel:只需添加:應用程序的回收不僅僅是由配置文件中的更改觸發的。現有文件中的任何更改或應用程序中文件的刪除都會導致該問題。您可以在此處看到其他一些場景:http://www.geekays.net/post/ASPNET-webdomain-recycle-on-subfolder-changes.aspx – Kangkan 2010-04-27 09:24:30

7

它足夠聰明地緩存所有的屬性。

相關問題