我目前正在对一个动作使用OutputCacheAttribute(在System.Web.Mvc中):
[ChildActionOnly]
[OutputCache(Duration = 24 * 60 * 60)] // Cache for 24 hours
public ContentResult Render(string json, string pagePublished)
{
第一页加载后,它会缓存输出并保存它。它有时会缓存数小时,有时几分钟。
我在多个页面上使用此操作,所以首先我认为它可能与此有关。但我试图只缓存一个页面,看它是否成立,但事实并非如此。我试图缓存很多页面,有时会持续数小时。
任何人都知道可能出现什么问题?
编辑:
w3wp进程使用了大量的RAM(这是设计而不是问题),它仍然可以分配免费RAM(大约5gb)。我已经构建了另一个获取httpcontext缓存当前大小的操作。这相当于大约1350000字节。所以内存不应该有问题。
我也遇到了MemoryCache的问题,它也会随机驱逐项目(金额大约为8530000字节。)
EDIT2:
似乎它正在保存MemoryCache和httpcontext缓存中的操作输出。
答案 0 :(得分:0)
无法保证在指定的时间内缓存内容。当内存资源变低时,缓存会自动开始逐出内容。