简体   繁体   中英

How can we clear the server side cache in a button click in an asp.net application?

I have a typical requirement over here.

I have a web application developed in asp.net 4.0. In this application I want to add a button to one of the web form, which will perform the following task :

  1. It should clear the server side cache, by this I mean it should clear the cache of the same IIS server in which the application is hosted in.

Now, I am aware of that we can achieve it manually by deleting the files present over here,

%systemroot%\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
%systemroot%\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

And we need to shut down the IIS before deleting the temporary files and restart it again after that. In order to avoid any dependencies on the cached files.

But I want to know how can I achieve it in the button click event of the web form. Please help me out with this requirement.

I currently use the following in my application:

    public static void ClearAspNetCache(HttpContext context) {
        foreach (DictionaryEntry entry in context.Cache) {
            context.Cache.Remove((string)entry.Key);
        }
    }

Here's a source reference which might be quite useful:

http://aspadvice.com/blogs/ssmith/archive/2005/11/14/Extending-the-ASPNET-Cache-Object-Cache-Clear.aspx#33197

Have a try with this if you want to remove all the items from the cache :

IDictionaryEnumerator enumerator = HttpContext.Current.Cache.GetEnumerator();    
while (enumerator.MoveNext())
{    
    HttpContext.Current.Cache.Remove(enumerator.Key);    
}

Removing items from HttpContext.Current.Cache will NOT clear your IIS cache. It's server side cache (managed by ASP.NET Runtime), not web server cache.

Check out this link. http://blogs.msdn.com/b/dougste/archive/2008/08/11/clearing-out-temporary-asp-net-files.aspx

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM