2014-08-28 43 views
3

我有一個應用程序使用緩存的某些對象,該緩存實現爲一個靜態的Dictionary。我正在尋找一些新的ASP.NET項目的代碼。由於緩存將存儲在服務器上,而不是每次運行應用程序時構建,所以我需要不時刷新緩存。ASP.NET應用程序池回收會刷新靜態對象上的緩存嗎?

我的問題是:應用程序池回收會重新運行我的類的靜態構造函數設置緩存?

我對應用程序池的工作原理並不瞭解,但從我的理解中可以看出,當網站長時間未訪問時,它們會「關閉」,並在重新訪問時重新啓動。在重新啓動期間,靜態對象是否會再次「實例化」,還是通過「關閉」過程仍然保留在內存中?

回答

2

是的。靜態構造函數將重新運行。

但是,在事件上初始化數據,而不是依靠靜態構造函數仍然更爲明智,因爲它的行爲更具可預測性。

+0

對,如果我最初是用ASP.NET寫的,我會實現不同的緩存。 – DLeh 2014-08-28 15:50:26

相關問題