我目前的操作使用OutputCacheAttribute(在System.Web.Mvc):outputcache随机删除项目?
[ChildActionOnly]
[OutputCache(Duration = 24 * 60 * 60)] // Cache for 24 hours
public ContentResult Render(string json, string pagePublished)
{
第一页面加载后,它会缓存输出并保持。它有时会保持缓存几个小时,有时几分钟。
我在多个页面上使用此操作,所以首先我认为它可能与此有关。但我试图缓存一页,看看它是否成立,事实并非如此。我试图缓存很多页面,有时会持续几个小时。
任何人都知道什么可能是错的?
编辑:
w3wp进程使用的RAM大量的(这是由设计,而不是一个问题),还有免费的RAM(大约5GB)为它分配。我已经构建了另一个获取当前httpcontext缓存大小的操作。这相当于大约1350000字节。所以内存不应该有问题。
我也有的MemoryCache问题也随机淘汰项目
EDIT2(相当于约853万个字节):
好像它是保存在双方的MemoryCache和动作输出的HttpContext缓存。
缓存是否已满?什么是驱逐政策? –
我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –
@DaveHillier缓存需要8 MB,所以应该有足够的空间供它使用。它应该在持续时间用尽之后驱逐输入。 – slinzerthegod