在asp.net中清空Cache对象的集中方式

时间:2009-10-07 14:43:38

标签: c# asp.net caching

我必须维护一个旧的asp.net应用程序,并且需要禁用对Cache对象的所有访问以进行调试。有数百个页面使用该结构:

if (Cache["myobject"] != null)
{
   //get data from the cache
   //...
}
else
{
   //go to the DB, load the cache and send it to the client
}

我知道我应该重构这段代码,但与此同时,你知道清空(或禁用)Cache对象的任何简单和集中的方法吗?

3 个答案:

答案 0 :(得分:3)

不确定它是否会有任何帮助,但您可以使用缓存settings并设置privateBytesLimit1privateBytesPollTime至{{1} }}。我的猜测是ASP.NET应该在添加后立即删除所有条目。但是,情况可能并非如此。

答案 1 :(得分:3)

我没有使用它,但是helper可能会给你你想要的东西。

答案 2 :(得分:2)

如果您只想清除缓存一次,可以使用:

   foreach ( System.Collections.DictionaryEntry entry in HttpContext.Current.Cache )
        HttpContext.Current.Cache.Remove( entry.Key as String );

否则@Anton Gogolev解决方案看起来很好,以防止新的条目。