que estoy usando la caché de resultados en mi controlador HTTP personalizado de la siguiente manera:almacenamiento en caché de salida en el controlador HTTP y SetValidUntilExpires
public void ProcessRequest(HttpContext context)
{
TimeSpan freshness = new TimeSpan(0, 0, 0, 60);
context.Response.Cache.SetExpires(DateTime.Now.Add(freshness));
context.Response.Cache.SetMaxAge(freshness);
context.Response.Cache.SetCacheability(HttpCacheability.Public);
context.Response.Cache.SetValidUntilExpires(true);
...
}
Funciona, pero el problema es que actualizar la página con F5 lleva a la página de la regeneración (en lugar de utilizar el caché) a pesar de la última línea de código:
context.Response.Cache.SetValidUntilExpires(true);
¿Alguna sugerencia?
UPD: Parece que la causa del problema es que la respuesta del manejador HTTP no está almacenando en caché en el servidor. El siguiente código funciona bien para en forma de banda, pero no para el manejador:
Response.Cache.SetCacheability(HttpCacheability.Server);
¿Hay algunos aspectos específicos del almacenamiento en caché la respuesta controlador HTTP en el servidor?
Gracias por encontrar esta solución, funcionó para mí con parámetros de consulta de un solo valor. Pero cuando tengo un parámetro multivaluado como '? Id = 1 & id = 2 & id = 3', esto todavía no funciona. Todavía no sé por qué, pero quería que otros lo supieran. – Oliver