2011-03-13 5 views
16

Estoy intentando desactivar el almacenamiento en caché de salida en una aplicación MVC3 cuando estoy en depuración. Estoy especificando el almacenamiento en caché de resultados en los controladores (a través del atributo), pero no quiero tener que #if DEPURAR todo mi código. Yo esperaba que esto funcione:¿Desactiva OutputCaching en MVC3 cuando se ejecuta en DEBUG o en Debugger?

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

Pero esto parece ser ignorado. ¿Alguna otra idea de cómo hacerlo en todo el sistema sin un desagradable código global.asax o #if DEPURADORES en ningún lado?

Respuesta

31

El archivo web.config.debug se utiliza sólo cuando se construye una deployment package. Si ejecuta su sitio localmente en Cassini, por ejemplo, se ignorará por completo. Así que es posible que intente deshabilitar la caché en su web.config:

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

y en su web.config.release habilitar la memoria caché. Sin embargo, tenga en cuenta que si no utiliza la función de paquete de despliegue web, esos archivos se ignoran por completo.

+0

Lo descubrimos justo después. Moví esto a la versión Release y lo configuré en "true". Gracias. –

+2

Esta configuración parece no funcionar en IIS Express 8 :(. ¿Por qué? – Freshblood

0

Creo que eso funcionaría también. También puede intentar configurar enableFragmentCache en falso. Por this link:

la propiedad EnableFragmentCache es establece en false, no hay página se almacena en caché en el servidor , independientemente de la configuración en @ OutputCache directiva de almacenamiento en caché o perfil utilizados por la página. Para obtener más información sobre , consulte OutputCacheSettingsSection y OutputCacheProfile.

Cuestiones relacionadas