asp.net-mvc - 如何缓存 FileContentResult 以提高性能?

标签 asp.net-mvc internet-explorer firefox caching

目前,我有以下操作从我的数据库返回文件(图像、PDF 等):

    //
    // 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);
    }

我正在使用 OutputCache 属性,但我不知道我是否正确使用它或如何为此目的优化它。

就代码而言,我似乎在 Firefox(3) 中获得了缓存功能,但在 IE(7) 中却没有。由于某种原因,IE 每次都会从数据库请求图像(这显然是致命的错误),我不知道如何修复它。当然 IE 不能正确支持标准,但也许我仍然没有遵循一些首选的缓存约定。我真的很感谢这方面的一些帮助,这样我就可以得到最少的数据库命中和跨浏览器的缓存支持。

编辑: 要查看上面的代码的实际效果或使用浏览器/工具自行对其进行分析,请参阅 this link .

最佳答案

尝试使用 ServerAndClient 位置:

[OutputCache(Duration=600,VaryByParam="ID",Location=OutputCacheLocation.ServerAndClient)]

关于asp.net-mvc - 如何缓存 FileContentResult 以提高性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/796704/

相关文章:

javascript - 无法清除 Angular 4 中粘贴文本中的空格

html - 如何在 Chrome 中设置背景图片?

Javascript:替换 element.src 属性中的字符串

html - Firefox/其他浏览器之间的对齐偏移

c# - 一般使用 asp.net mvc 模型绑定(bind)器

c# - 无法在 asp.net MVC 中使用 File.WriteAllBytes(),无法从方法组中选择方法您是否打算调用该方法?

javascript - Bootstrap 日期时间选择器删除子午线上午/下午

c# - 在 MVC 中调用和返回 SQL 函数值

javascript - Firefox 兼容输入过滤

html - 使用媒体查询优化移动网络体验