2011-03-13 7 views
16

Sto cercando di disabilitare la cache di output in un'app MVC3 durante il debug. Sto specificando la cache di output nei controller (tramite l'attributo) ma non voglio dover #if DEBUG su tutto il mio codice. Mi aspettavo che funzionasse:Disabilitare OutputCaching in MVC3 quando si esegue in DEBUG o in Debugger?

// In Web.config.debug 
    <system.web> 
    <caching> 
     <outputCache enableOutputCache="false" 
        xdt:Transform="Replace" /> 
    </caching> 

Ma questo sembra essere ignorato. Qualche altra idea su come farlo a livello di sistema senza un brutto codice global.asax o #if DEBUGs ovunque?

risposta

31

Il file web.config.debug viene utilizzato solo quando si crea un deployment package. Ad esempio, se esegui localmente il tuo sito in Cassini, viene completamente ignorato. Così si può provare a disattivare la cache in web.config:

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

e nella vostra web.config.release abilitare la cache. Si noti tuttavia che se non si utilizza la funzionalità del pacchetto di distribuzione Web tali file vengono completamente ignorati.

+0

Trovato questo subito dopo. Spostato questo alla versione Release e impostarlo su "true". Grazie. –

+2

Sembra che questa configurazione non funzioni su IIS Express 8 :(. Perché così? – Freshblood

0

Penso che funzionerebbe altrettanto bene. Potresti anche provare a impostare enableFragmentCache su false. Per this link:

la proprietà EnableFragmentCache è impostato su false, nessuna pagina viene memorizzata nella cache sul server , indipendentemente dalle impostazioni in @ direttiva OutputCache o caching profilo utilizzati dalla pagina. Per ulteriori informazioni su , vedere OutputCacheSettingsSection e OutputCacheProfile.

Problemi correlati