В IIS7 у меня есть файл .ashx от третьей стороны, который устанавливает заголовки кэширования на no-cache,private
Я хочу, чтобы это кэшировалось на клиенте, поэтому я добавил следующий код в глобальный.asax
void Application_EndRequest(object sender, EventArgs e)
{
if (Request.Path.IndexOf("Script.ashx") > -1)
{
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetExpires(DateTime.Now.AddDays(7));
Response.Cache.SetValidUntilExpires(true);
Response.Cache.VaryByHeaders["Accept-Language"] = true;
}
}
Я ожидаю, что результирующая информация о кеше будет public, Expires: Thu, 29 Sep 2011 16:06:27 GMT
Вместо этого, однако, я получаю отклик Франкена no-cache,public Expires: Thu, 29 Sep 2011 16:06:27 GMT
Так что кодпытается заменить приватное на публичное, как я хочу, но не может заменить директиву no-cache.Можно ли заменить директиву no-cache таким подходом: если да, то чего мне не хватает;если нет, то какие еще есть подходы?