Estoy desarrollando una aplicación ASP.NET MVC. La mayoría de las acciones del controlador no se deben almacenar en caché. Debido a esta salida me encabezados no-cache en Application_BeginRequest
:¿Cómo se desactiva el almacenamiento en caché para solicitudes MVC pero no para archivos estáticos en IIS7?
protected void Application_BeginRequest()
{
HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
HttpContext.Current.Response.Cache.SetValidUntilExpires(false);
HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.Cache.SetNoStore();
}
La aplicación se ejecuta en IIS 7 con la configuración de los módulos de configuración runAllManagedModulesForAllRequests="true"
. Esto significa que todos los archivos estáticos también pasan por la interconexión de solicitudes (y el almacenamiento en caché está deshabilitado).
¿Cuál es la mejor manera de mantener el almacenamiento en caché habilitado para estos archivos estáticos? ¿Tengo que verificar la extensión antes de configurar los encabezados de caché de respuesta en Application_BeginRequest
o hay una manera más fácil (como pasar por alto la tubería de solicitud para archivos estáticos por completo)?
Esto se ve prometedor http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html –