2013-02-10 104 views
2

根據MSDN:「此類的一個實例是爲每個應用程序域創建的,只要應用程序域保持活動狀態,它就一直有效。有關此類實例的信息可通過Cache屬性對象的HttpContext對象或對象的Cache屬性。「使用數據緩存

據我所知,HttpContextPage對象生命對單個http請求有效。那麼,當我不能將它用於其他請求時,緩存屬性(數據緩存)的用途是什麼?

回答

4

MSDN正確:HttpContext.Cache適用於整個應用程序生命週期,而不僅僅是一個請求。

你是對的,HttpContext生活在每個請求,但Cache對象生活在整個應用程序的生活。該框架確保在爲您創建HttpContext時分配正確的Cache實例。

+0

我將它標記爲答案。謝謝。有一個更多的疑問,你的意思是'應用程序生命週期'。我應該如何從HttpApplication對象創建到缺點?或者當相同的HttpApplication對象被重複用於來自同一個應用程序的另一個頁面請求時,生命週期會繼續嗎? – 2013-02-10 11:32:26

+0

應用程序生命週期是應用程序的整個生命週期,它始於Application_Start,並在應用程序池關閉或回收時結束。即使多個HttpApplication對象在使用,也只會有一個Application_Start事件。 – driis 2013-02-10 11:33:38

+0

所以你的意思是,直到應用程序池關閉或回收,我可以使用我的緩存對象跨不同請求正確? – 2013-02-10 11:51:21

1

HttpContextPage可能只在請求的基礎上有效。然而,緩存在應用程序級別上。僅僅因爲您可以使用HttpContextPage訪問Cache對象並不意味着它們具有相同的使用期限。