C# – How to we clear the server side cache in a button click in an asp.net application

asp.netcnetserver-side

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.

Best Answer

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