Reputation: 4094
I have to maintain an old asp.net application, and need to disable all access to the Cache object for debugging purposes. There are hundreds of pages that use the structure:
if (Cache["myobject"] != null)
{
//get data from the cache
//...
}
else
{
//go to the DB, load the cache and send it to the client
}
I know I should refactor this code but, in the meantime, do you know of any simple and centralized way to empty (or disable) the Cache object?
Upvotes: 3
Views: 610
Reputation: 2702
If you just want to clear the cache once, you can use this:
foreach ( System.Collections.DictionaryEntry entry in HttpContext.Current.Cache )
HttpContext.Current.Cache.Remove( entry.Key as String );
Otherwise @Anton Gogolev solution looks good to prevent new entries.
Upvotes: 2
Reputation: 115691
Not sure if it will be of any help, but you can play with cache settings and set, say, privateBytesLimit
to 1
and privateBytesPollTime
to 00:00:01
. My guess is that ASP.NET should basically remove all entries as soon as they're added. However, this might not be the case.
Upvotes: 3