【发布时间】:2011-01-13 04:38:11
【问题描述】:
我有一个类似于 AssemblyResourceLoader 的 IHttpHandler。它所做的是生成图像,然后将其发送回浏览器。
在 AssemblyResourceLoader 中有这样的代码块:
HttpCachePolicy cache = context.Response.Cache;
cache.SetCacheability(HttpCacheability.Public);
cache.VaryByParams["d"] = true;
cache.SetOmitVaryStar(true);
cache.SetExpires(DateTime.Now + TimeSpan.FromDays(365.0));
cache.SetValidUntilExpires(true);
Pair assemblyInfo = GetAssemblyInfo(assembly);
cache.SetLastModified(new DateTime((long) assemblyInfo.Second));
我已将我的设置为发出与 AssemblyResourceLoader 完全相同的标头。我设置了 Last-Modified 标头,浏览器将 If-Modified-Since 标头发送到我的处理程序,就像使用 AssemblyResourceLoader 一样。问题是这样的:我的处理程序永远不会像 AssemblyResourceLoader 那样返回 304。我在 AssemblyResourceLoader 代码中找不到处理 If-Modified-Since 标头的任何地方,所以我不知道如何自己处理它。有谁知道 ASP.Net 在哪里做的以及我如何从我的处理程序中获得相同的行为?
谢谢。
【问题讨论】:
标签: asp.net http-headers