2011-04-05 12 views
13

¿Existe alguna forma de desactivar el caché del servidor globalmente en ASP.NET? ¿Quiere agregar algún tipo de configuración al archivo web.config?Inhabilitar el caché globalmente .NET

Hasta ahora he intentado añadir estos y que aún no ha hacer una diferencia ...

 <caching> 
      <sqlCacheDependency enabled="false"></sqlCacheDependency> 
      <outputCache enableOutputCache="false" 
       enableFragmentCache="false" 
       sendCacheControlHeader="false" 
       omitVaryStar="false" /> 
     </caching> 
+1

¿Por qué quiere desactivarlo en primer lugar? Si dices 'por qué', puede haber una mejor solución a tu problema. Porque no me puedo imaginar que el servidor de caché en sí sea el problema. Si no lo usa, no estará en su camino. – pyrocumulus

+0

Básicamente estoy trabajando en este sitio web donde necesito agregar contenido nuevo de base de datos. Una vez que se haya agregado, no se mostrará en el sitio hasta que finalice el almacenamiento en caché. – user441365

+0

El problema anterior es que la sección outputCache no se usa como nivel superior en el almacenamiento en caché – Darren

Respuesta

0

puede desactivar la caché de resultados y el estado de sesión para toda la aplicación mediante la eliminación de sus módulos, esto se puede hacer a partir Web.config

<httpModules> 
    <add name="OutputCache" type="System.Web.Caching.OutputCacheModule" /> 
    <add name="Session" type="System.Web.SessionState.SessionStateModule" /> 
</httpModules> 

o

agregar a su carga de la página

Response.Cache.SetCacheability(HttpCacheability.NoCache) 
+1

No tengo esos módulos en mi web.config y ya intenté agregar Response.Cache.SetCacheability (HttpCacheability.NoCache) a Global.asax sin suerte – user441365

+0

@ user441365 - Response.Cache.SetCacheability (HttpCacheability.NoCache) requiere agregar a nivel de página no en global.asax –

-1

According to MSDN:

se puede desactivar la caché de páginas de salida para toda la aplicación mediante la adición de enableOutputCache = "false" a la OutputCacheSection en el archivo Web.config.

por ejemplo

<configuration> 
    <system.web> 
     <caching> 
      <outputCacheSettings enableOutputCache="false"/> 
     </caching> 
    </system.web> 
</configuration> 

Por lo que su configuración no está trabajando porque tiene el atributo enableOutputCache en el elemento outputCache, cuando debería ser en el elemento outputCacheSettings.

+0

I Estoy trabajando con .NET 3.5 y VS2008 y no me gusta eso .... – user441365

+0

Me da un mensaje: El atributo enableOutputCache no está declarado – user441365

+0

Ah, 3.5 ok. Sí, tienes razón, parece que migró de outputCache a outputCacheSettings entre 3.5 y 4 - ¡hombre, el esquema web.config es un lío horrible! En ese caso, tu original debería haber funcionado.Una posibilidad: ¿qué servidor web estás usando (vs dev? IIS? ¿Qué versión?) – UpTheCreek

10

También hay una manera de deshabilitar esto en system.webServer si está utilizando IIS7/7.5 o IIS Express. Esto funcionará en su archivo web.config principal (para formularios web y mvc) y también en archivos web.config en subcarpetas, para deshabilitarlo para áreas particulares de su aplicación.

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

La sección OutputCacheSection se utiliza para configurar los ajustes de la aplicación de alcance, tales como si el almacenamiento en caché de resultados de página está activada o desactivada. Por ejemplo, puede desactivar el almacenamiento en caché de salida de página para toda la aplicación agregando enableOutputCache="false" a OutputCacheSection en su archivo Web.config. La configuración en el archivo de configuración tiene prioridad sobre la configuración de caché en páginas individuales, por lo que la configuración de ejemplo significa que no se usará la memoria caché de resultados.

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