2013-07-14 47 views
0

我有這個問題,我想知道它是由IIS或Asp.net框架管理,將其保存在服務器磁盤或內存中。ASP.net MVC OutputCacheLocation.Server如何工作?

我學習Azure的共享緩存尋找的OutputCache並保存數據庫資源取數據。

在我的研究結論,我會決定做緩存中的所有操作結果或ChildActionOnly。

謝謝!

回答

2

默認OutputCacheLocation.Server簡單地意味着該數據存儲在IIS Worker Process存儲器空間。如果啓用Kernel-Mode緩存數據存儲在Http.Sys驅動程序內存空間(這是一個操作系統進程,而不是IIS進程)。

Windows Azure Shared Caching的情況下,數據被序列化並存儲在虛擬機實例的特殊處理,這個過程是那麼對於所有角色實例之間的緩存數據的管理和同步負責。

+0

有趣,所以,很長一段時間後,工作進程內存消耗,存儲器轉移到天空。我認爲,這不是一件好事。我可以實現一個自定義outputcache來寫磁盤或memcached一段時間可能會更好。 關於Windows Azure共享緩存和Windows Azure緩存不一樣吧? –

+0

你不必擔心內存消耗,它是由IIS來管理這個東西,一旦它到達它(配置)的限制,它可能會持續一些數據到磁盤或驅逐一些項目,取決於您的配置。看到http://technet.microsoft.com/en-us/library/cc772095(v=ws.10).aspx – haim770

+0

'Azure的共享Caching'是某種形式的「緩存爲service'模塊(每月支付的您使用的緩存大小)。另一方面,Azure基於角色的緩存是一種緩存服務,您可以將其部署在您自己的角色實例中,既可以作爲專用的獨立工作人員角色,爲緩存提供大部分可用內存,也可以作爲共址角色,該角色爲分佈式緩存使用現有Web/Worker角色的一些預配置數量的內存。 – haim770