我必须维护一个旧的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对象的任何简单和集中的方法吗?
答案 0 :(得分:3)
不确定它是否会有任何帮助,但您可以使用缓存settings并设置privateBytesLimit
至1
和privateBytesPollTime
至{{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解决方案看起来很好,以防止新的条目。