17

I use OutputCache in an ASP.net MVC application. As developing with an active OutputCache is not very pleasant I want to disable the OutputCache on the Development Systems (local machines and development server).

What is the best way to do this?

chbu
  • 985
  • 1
  • 8
  • 18
  • A newer duplicate question came up with an interesting answer for the situation when you want to alter some output caching but not all: [use cache profiles](http://stackoverflow.com/questions/4662424/bypass-outputcache-in-asp-net-mvc/4665245#4665245). – patridge Mar 24 '11 at 19:27

2 Answers2

19

It's an old one but...

set this in your web.config under system.web

<caching>
  <outputCache enableOutputCache="false" />
</caching>
Tony Basallo
  • 3,000
  • 2
  • 29
  • 47
15

The outputcache in ASP.NET can be enabled and disabled using

For iis versions < 7.0

<system.web>
    <caching>
        <outputCache enableOutputCache="false" />
    </caching>
</system.web>

For iis versions >= 7.0

<system.webServer>
    <caching enabled="false" />
</system.webServer>

N.B. I usually use both, better safe than having a sore foot, and use a config transform to make sure that the caching is enabled for different configurations on publish. In my solution a configuration corresponds 1 on 1 with an environment

Another technique is to use pragmas to enable pieces of code to compile or not compile based on i.e. the DEBUG conditional compilation symbol:

#if DEBUG
    [OutputCache]
#endif
twildeman
  • 599
  • 5
  • 10
  • 1
    The pre IIS 7 version is needed for IIS Express 8 – Jeff Walker Code Ranger Mar 24 '14 at 20:17
  • These two examples (pre & post IIS7), are for different functionalities. The example in `` is for the ASP.NET OutputCache (https://learn.microsoft.com/en-us/iis/configuration/system.webserver/caching/). The example in `` is for built-in IIS response caching (https://learn.microsoft.com/en-us/iis/configuration/system.webserver/caching/). IIS cache is interoperable with OutputCache. – J. Christian Jan 24 '18 at 00:31