6
在IIS 7中如何管理ASP.NET高速緩存?我知道它存儲在服務器的內存中,但管理它的過程是什麼?它是在w3wp.exe的地址空間中,還是在另一個進程/位置?會話數據是否使用緩存,或Session的工作方式不同?ASP.NET高速緩存的位置
在IIS 7中如何管理ASP.NET高速緩存?我知道它存儲在服務器的內存中,但管理它的過程是什麼?它是在w3wp.exe的地址空間中,還是在另一個進程/位置?會話數據是否使用緩存,或Session的工作方式不同?ASP.NET高速緩存的位置
您可以配置會話數據存儲在web.config
中的sessionState element的位置。如果設置爲InProc
,它將存儲在與應用程序的App Pool相對應的w3wp.exe
進程的內存中。例如,您也可以將其存儲在SQL Server實例中。
如果在配置文件中未定義該元素,請查看目標框架版本/體系結構的計算機級別web.config
。
你是對的,謝謝。我也做了我自己的挖掘(通過反射器)並提供更多信息。主要的ASP.NET Cache對象(最終)將自己實現爲託管HashTable。沒有COM伏都教,我一直期待。看起來所有的ASP.NET緩存都是通過託管代碼完成的,即所有緩存對象都存儲在w3wp.exe的地址空間中。 – 2012-04-09 22:30:51
爲了進一步支持,我一直認爲回收應用程序池會從'HttpContext.Cache'驅逐項目。我找不到任何支持信息,但是這導致我相信它存儲在相應的'w3wp.exe'實例的內存中。 – wsanville 2012-04-09 22:33:01
是的,支持信息是緩存存儲爲HashTable(檢出System.Web.Caching.CacheSingle類)。根本沒有非託管代碼。現在我們都知道了。 :) – 2012-04-09 22:38:29