Asp.net mvc 3 图像缓存验证程序的IHttp通用处理程序(.ashx)

Asp.net mvc 3 图像缓存验证程序的IHttp通用处理程序(.ashx),asp.net-mvc-3,caching,httpcontext,ihttphandler,generic-handler,Asp.net Mvc 3,Caching,Httpcontext,Ihttphandler,Generic Handler,我有图像的IHttp通用处理程序(.ashx),我发送了缓存过期时间为7天的消息,但在Google page insight中,它说我应该添加缓存验证器。 下面是我的代码。请告诉我一些事情 public void ProcessRequest(HttpContext context) { TimeSpan refresh = TimeSpan.FromDays(7); context.Response.Cache.SetExpires(DateTi

我有图像的IHttp通用处理程序(.ashx),我发送了缓存过期时间为7天的消息,但在Google page insight中,它说我应该添加缓存验证器。 下面是我的代码。请告诉我一些事情

    public void ProcessRequest(HttpContext context)
    {
        TimeSpan refresh = TimeSpan.FromDays(7);
        context.Response.Cache.SetExpires(DateTime.Now.Add(refresh));
        context.Response.Cache.SetMaxAge(refresh);
        context.Response.Cache.SetCacheability(HttpCacheability.Public);
        context.Response.CacheControl = HttpCacheability.Public.ToString();
        context.Response.Cache.SetValidUntilExpires(true);
    }

谢谢

经过一些研究,我发现我们可以添加Etag或SetLastModified,或者只需在缓存中添加一个头,如下所示:

context.Response.Cache.SetETag(DateTime.Now.ToLongDateString());
context.Response.Cache.SetLastModified(DateTime.Now.ToLongDateString());
context.Response.AddHeader("Last-Modified", DateTime.Now.ToLongDateString());