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