2016-01-25 2 views
0

Я пытаюсь использовать OutputCache для кеширования серверов и клиентов в представлении MVC, но установка Location на ServerAndClient заставляет HTTP-заголовок Vary: * быть установленным, что в значительной степени поражает цель кэширования клиента (он сообщает браузеру проверить свежесть КАЖДЫЙ раз, когда используется ресурс).Как использовать OutputCacheLocation.ServerAndClient без Vary: * HTTP-заголовок

Я хочу, чтобы браузер кэшировал файл в течение 24 часов и делал только другой запрос, если я изменяю параметр LastModifield, который я добавляю в очередь. Это работает, если у меня есть только Клиент в качестве местоположения, но я также хочу, чтобы сервер кэшировал файл, чтобы он не нуждался в его регенерации, когда другой пользователь запрашивает тот же ресурс.

Ресурс основан на базе данных, которая редко будет обновляться (возможно, один или два раза в месяц, я знаю, когда она изменилась), и ресурс может сильно пострадать, поэтому я не хочу генерировать все это время или даже обработку измененных - с условием запросов.

Мой атрибут OutputCache является:

[OutputCache(Location = OutputCacheLocation.ServerAndClient, Duration = 86400, VaryByParam = "LastModified")]

Я попытался расширить класс OutputCacheAttribute и опрокинув все Вкл * методы и удаление Варах заголовок HTTP, но Варах заголовок, кажется, не будет добавлен пока ПОСЛЕ всех этих методов не будут вызваны.

ответ

Смежные вопросы