Actualmente tengo el siguiente acción para volver archivos (imágenes, PDF, etc.) de mi DB:¿cómo puedo almacenar en caché FileContentResult para el rendimiento?
//
// GET: /FileManager/GetFile/ID
[OutputCache(Duration = 600, VaryByParam = "ID")]
public ActionResult GetFile(int ID)
{
FileService svc = new FileService(new SqlFileRepository(base.ConnectionString));
KsisOnline.Data.File result = svc.GetFileByID(ID);
return File(result.Data, result.MimeType, result.UploadFileName);
}
estoy usando el atributo OutputCache
pero no sé si lo estoy usando correctamente o cómo optimizarlo para este propósito
Como el código es correcto, parece que tengo la funcionalidad de caché en Firefox (3) pero no en IE (7). Por alguna razón, IE solicita la imagen desde el DB cada vez (lo que es obviamente malo) y no sé cómo solucionarlo. Seguro que IE no es compatible con los estándares de forma adecuada, pero tal vez todavía no sigo algunas convenciones de caché preferidas. Realmente agradecería algo de ayuda con esto, así que obtengo visitas DB mínimas y soporte de almacenamiento en caché.
EDIT: Para ver el código anterior en la acción o al perfil usted mismo con navegadores/herramientas, consulte this link.
posible duplicado de [Cómo volver estado 304 con FileResult en ASP.NET MVC RC1] (http://stackoverflow.com/questions/602104/how-return-304-status-with-fileresult-in-asp-net-mvc-rc1) –