Возможно, вы также захотите добавить эту строку, если вы устанавливаете максимальный возраст:
// Summary:
// Sets Cache-Control: public to specify that the response is cacheable
// by clients and shared (proxy) caches.
Response.Cache.SetCacheability(HttpCacheability.Public);
Я много работаю с заголовком ответа с документами и изображениями из обработчика файлов, который обрабатывает запросы на файлы, сохраненные в БД.
В зависимости от вашей цели вы можете принудительно заставить браузеры кэшировать почти все страницы в течение нескольких дней локально (если это то, что вам нужно / нужно).
редактирование:
Я также думаю, что вы можете установить максимальный возраст неправильно ...
Response.Cache.SetMaxAge(new TimeSpan(dt.Ticks - DateTime.Now.Ticks ));
этот набор строк имеет 30-минутное время кэширования в локальном браузере [max-age = 1800]
Что касается строк управления кэш-памятью 2x ... вы можете проверить, установлен ли IIS для автоматического добавления заголовка.