代码设置输出缓存头的一些问题记录

在设置Response缓存头的时候有两种调用方法:

  1. Response.Headers.Add(string key, string value)
  2. Response.Cache.SetMaxAge(DateTime)

在程序中的应用中遇到2个问题,都是很奇怪的

  1. 我Response.AddHeader("Last-Modified", GTMTtimeString)然后又设置了 Response.Cache.SetMaxAge(new TimeSpan(7, 0, 0, 0))
    结果在输出中 是没有第一个头的,后来Response.Cache.SetLastModified(lastModified) 就可以了
    猜测:不能用两种方式输出头
  2. 由于项目要求用把cache-control设置为public,于是我首先Response.Cache.SetCacheability(HttpCacheability.Public),然后出现了奇怪的问题
    由于我的程序是一个Handler处理程序,发来的ashx请求就不更新了,每次都返回同一个内容,强刷时内容更新,后了解到原来HttpCacheability.Public这个设置中已经启动了
    服务器端缓存,因此我第一次后的返回结果都是server端的缓存

     
原文地址:https://www.cnblogs.com/lyroge/p/2375547.html