IIS7 - Кэширование на стороне клиента файла .ashx, в котором уже есть набор данных без кэширования. - PullRequest
0 голосов
/ 22 сентября 2011

В 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 таким подходом: если да, то чего мне не хватает;если нет, то какие еще есть подходы?

1 Ответ

1 голос
/ 23 сентября 2011

Приведенный выше код дает сбой в классическом режиме IIS7, но в интегрированном режиме код работает должным образом и выдает разумные заголовки ответа. Я предполагаю, что это связано с тем, что классика работает аналогично фильтру ISAPI. Я переключился в интегрированный режим, и это решило проблему.

...