我该如何调试为什么事情会从我的asp.net-mvc缓存中删除

时间:2011-07-11 01:55:49

标签: asp.net-mvc memory windows-server-2008 outputcache

无论如何都要在Windows Web服务器上查看asp.net缓存的当前大小以及在事情被拒绝之前剩余的空间。

我设置缓存对象48小时,但我一直看到网页加载速度慢,所以不知何故事情从缓存中删除。 (我将一个变量传递给视图,指示它是否从缓存中获得了结果集。我加载一个页面,我希望在接下来的48小时内为真,但它似乎不是发生。

关于我如何进一步调试以找出后续步骤的任何建议。

1 个答案:

答案 0 :(得分:3)

ASP.NET默认会缓存到内存,您可以将缓存添加到磁盘,但速度要慢得多,您需要编写或查找提供程序。

ASP.NET可以出于以下原因之一从缓存中删除数据:

  • 因为服务器上的内存很低, 一个称为清理的过程。
  • 因为缓存中的项目有 过期。
  • 因为该项目 依赖性变化。

为了帮助您管理缓存项目,ASP.NET可以在从缓存中删除项目时通知您的应用程序。

http://msdn.microsoft.com/en-us/library/ms178597.aspx

缓存内容的位置

默认情况下,当您使用[OutputCache]属性时,内容将缓存在三个位置:Web服务器,任何代理服务器和Web浏览器。您可以通过修改[OutputCache]属性的Location属性来精确控制缓存内容的位置。

您可以将Location属性设置为以下任何一个值:

  • 任何
  • 客户端
  • 下游
  • 服务器
  • ServerAndClient

http://www.asp.net/mvc/tutorials/improving-performance-with-output-caching-cs

更多信息

http://www.codeproject.com/KB/web-cache/cachemanagementinaspnet.aspx