2009-11-09 52 views
2

我正在處理的網站正在廣泛使用HttpContext.Current.Application商店來緩存來自數據庫的查找數據。 (這不是大量的數據 - 這是在下降中使用下拉列表等只是簡單的東西..)應用程序商店在ASP.Net網站中刷新的頻率如何?

關於這種方法的幾個問題:

  • 這個商店有一生的時間(以與20分鐘後用戶的會話超時相同,應用程序存儲超時)?

  • 在IIS中執行事件或與網站相同的應用程序域中的事件會導致應用程序存儲刷新? (據我所知,更改web.config文件中的值會導致商店被重新創建..是否還有其他的事情可以做到這一點?)

  • 有沒有更好的方法來做到這一點?

回答

1

Web.config文件會導致重新啓動應用程序,它是行動被清理掉HttpContext.Current.Application。

任何重新啓動應用程序,觸摸web.config,手動在IIS中執行它,讓應用程序池由IIS回收將清除該數據。

考慮到這一點,它仍然是可用內存最多的存儲器,所以如果你需要更多的東西,你將不得不將數據保存到磁盤或數據庫。

雖然你可能不需要使用它(我們很少這麼做),但通常最好的策略是使用應用程序緩存並根據需要重新生成資源。只要你的服務器沒有受到高內存壓力,緩存也不會被丟棄(沒有設置過期時間)。

+0

是什麼導致IIS中的應用程序池被回收?這是否會在一定的空閒時間後自動發生? – Dexter 2009-11-09 16:56:02

+0

它是可配置的,它取決於你使用的IIS版本我相信。有關更多信息,請參閱http://blogs.msdn.com/david.wang/archive/2006/01/26/Thoughts-on-Application-Pool-Recycling-and-Application-Availability.aspx。 – 2009-11-09 17:00:27

0

我的理解是適用於應用程序的生命週期,或者直到應用程序池被重置。

由於各種原因,IIS中的應用程序/會話池將被回收,有一篇很好的文章here

在IIS和web.config中都有設置可以改變應用程序商店可用性的行爲。

相關問題