2012-04-09 93 views
6

在IIS 7中如何管理ASP.NET高速緩存?我知道它存儲在服務器的內存中,但管理它的過程是什麼?它是在w3wp.exe的地址空間中,還是在另一個進程/位置?會話數據是否使用緩存,或Session的工作方式不同?ASP.NET高速緩存的位置

回答

3

您可以配置會話數據存儲在web.config中的sessionState element的位置。如果設置爲InProc,它將存儲在與應用程序的App Pool相對應的w3wp.exe進程的內存中。例如,您也可以將其存儲在SQL Server實例中。

如果在配置文件中未定義該元素,請查看目標框架版本/體系結構的計算機級別web.config

+0

你是對的,謝謝。我也做了我自己的挖掘(通過反射器)並提供更多信息。主要的ASP.NET Cache對象(最終)將自己實現爲託管HashTable。沒有COM伏都教,我一直期待。看起來所有的ASP.NET緩存都是通過託管代碼完成的,即所有緩存對象都存儲在w3wp.exe的地址空間中。 – 2012-04-09 22:30:51

+0

爲了進一步支持,我一直認爲回收應用程序池會從'HttpContext.Cache'驅逐項目。我找不到任何支持信息,但是這導致我相信它存儲在相應的'w3wp.exe'實例的內存中。 – wsanville 2012-04-09 22:33:01

+0

是的,支持信息是緩存存儲爲HashTable(檢出System.Web.Caching.CacheSingle類)。根本沒有非託管代碼。現在我們都知道了。 :) – 2012-04-09 22:38:29