代码之家  ›  专栏  ›  技术社区  ›  Nik

在ASP.NETMVC和IIS7.5中设置最佳http缓存头和服务器参数

  •  18
  • Nik  · 技术社区  · 16 年前

    我有一个ASP.Net网站(碰巧是MVC,但这在这里是不相关的),有几个页面我想缓存得非常好。

    1. 输出缓存在服务器上2小时。
    2. 如果服务器上的文件内容发生更改,则应刷新该页的输出缓存
    3. 在浏览器中缓存10分钟(即,甚至不要询问服务器是否有那么新鲜)

    (注-以上时间值仅为指示性示例)

    • 我知道3)可以通过使用max age和cache来实现-control:private

    但我似乎无法 全部的

        Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate);
            Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
            Response.Cache.SetETagFromFileDependencies();
            Response.Cache.SetValidUntilExpires(true);
            Response.Cache.SetMaxAge(TimeSpan.FromSeconds(60 * 10));
    

    我想要的情景可能吗?特别地:

    • 像上面那样设置变量,在哪里设置输出缓存的持续时间?

    谢谢你的提示!

    1 回复  |  直到 16 年前
        1
  •  1
  •   Eamon Nerbonne    15 年前

    我不确定你是否已经解决了这个问题(几个月后…),但是 应该

    SetMaxAge 应设定“瓜料”新鲜时间的量。如果您另外发送一个ETag,您将满足3&的要求;4.要求1&2可以用您使用的任何服务器端缓存机制正交地解决:我从未像这样使用过ASP.NET服务器端缓存,但几乎可以肯定这是可能的。

    SetRevalidation -为什么这是必要的?

    推荐文章