【问题标题】:ASP.NET MVC and IIS -- 'Cache-control' always 'no-cache' for filesASP.NET MVC 和 IIS——“缓存控制”总是“无缓存”的文件
【发布时间】:2013-12-05 00:21:05
【问题描述】:

无论我在 ASP.NET Web API 项目中做什么,在提供文件时,“Cache-control”都会设置为“no-cache”。

我使用过 IIS、IIS Express 和 Cassini。在我的操作方法结束时,它总是设置为私有——这就是我想要的。但是每当我查看实际响应时,它都是无缓存的。

我正在设置 ContentDispositionHeaderValue 和 MediaTypeHeaderValue(到 application/pdf)

有什么想法吗?我检查了整个项目,但我没有在全球范围内覆盖它。

【问题讨论】:

    标签: asp.net iis cache-control


    【解决方案1】:

    在 Web API 中,您不能使用 HttpContext.Current.Headers 来修改标头(如果您返回 POCO 对象,您甚至不能这样做)。调用会起作用,但实际上不会做任何事情。

    您必须在构造的响应对象上实际设置标头

    HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
    //IE7/8 Cache value to prevent error
    result.Headers.CacheControl = new CacheControlHeaderValue()
    {
         Private = true,
    };
    

    我很震惊,我似乎是少数尝试这样做的人之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多