Как настроить оба httpexpires и заголовки кеш-контроля

Я хочу установить как истечение срока действия, так и cachecontrol и httpExpires заголовки в web.config следуя ответу на этот вопрос В чем разница Истекает и Cache-control: max-age?

     <system.webServer>
        <staticContent>
            <clientCache cacheControlCustom="public" cacheControlMaxAge="12:00:00" cacheControlMode="UseMaxAge" />
            <clientCache cacheControlCustom="public" httpExpires="Tue, 19 Jan 2038 03:14:07 GMT" cacheControlMode="UseExpires" />
        </staticContent>
    </system.webServer>

Но по какой-то причине изображения стали недоступны, когда я это делаю.

У меня есть ошибка Failed to load resource: the server responded with a status of 500 (Internal Server Error) при каждой загрузке изображения (я вижу ошибки в browser dev tools console).

Я предполагаю, что неправильно настроен?

Это сработает, если я прокомментирую любой раздел clientCache, оставив только один

Как это исправить?

ОБНОВЛЕНО: Просто задал еще один связанный с ним вопрос как настроить как httpexpires, так и заголовки кэша управления web.cofig:

Ответы

Ответ 1

Эта страница IIS Client Cache гласит: "В то время как настройки" Истекает "и" Максимальный возраст "несколько аналогичны, директива" Максимальный возраст "имеет приоритет над" Истекает ". Тем не менее, IIS генерирует ошибки HTTP 500, когда одна запись" client-cache "максимального возраста использовалась параллельно с записью clientCache" Expires".

"Expires "и" max-age" взаимно исключают друг друга при настройке "Set Common Headers" в IIS. Вы можете использовать один или другой, но не оба.

Другие директивы кэша могут применяться к подпапкам или определенным файлам в Web.config. См. Эту страницу fooobar.com/questions/9762/... при настройке содержимого кеша в IIS7.

Ответ 2

<staticContent>
        <clientCache cacheControlCustom="public;max-age" cacheControlMode="UseMaxAge" cacheControlMaxAge="10.00:00:00" />
</staticContent>
<urlCompression dynamicCompressionBeforeCache="true" />

Это сработало для меня, чтобы кэшировать запрос в течение 10 дней.