2009-10-07 28 views
3

我必须维护一个旧的asp.net应用程序,并且需要禁用对Cache对象的所有访问以进行调试。有数以百计的使用结构的网页:集中式清空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

不知道这将是有帮助的,但你可以用缓存settings和设置,比如说玩,privateBytesLimit1privateBytesPollTime00:00:01。我的猜测是,ASP.NET应该基本上删除所有条目,只要他们添加。但是,情况可能并非如此。

+0

它的工作原理。谢谢。我认为这对生产环境来说不是一个好的解决方案(我的应用程序现在一直触发BeginRequest事件),但它是完美的测试。 – 2009-10-07 16:01:44

3

我还没有使用它,但是这个helper可能会给你以后的东西。

+0

看起来不错。当我重新设计应用程序时,这是我应该做的。 – 2009-10-07 16:03:03

2

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

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

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