Кэширование вывода IIS 7 для модулей - PullRequest
0 голосов
/ 28 марта 2012

У меня есть немного одноразовый сценарий для сайта, над которым я работаю.

Я маршрутизирую определенные пути запросов в специальный модуль HTTP, который динамически выводит «статический» контент.Я имею в виду содержание javascript и css.Тем не менее, этот контент генерируется динамически модулем, но после генерации меняется не очень часто.

Итак, я хотел бы кэшировать вывод моего пользовательского модуля, но по какой-то причине, ни кешированный контент,ни 304 не возвращаются клиенту, как я ожидал.

Если я перехожу по URL-адресу с помощью Firefox, кэширование в локальном браузере, похоже, работает.Браузер использует то, что он кэшировал локально, и не отправляет запрос на сервер.

Однако, если я нажимаю клавишу F5 на странице, браузер пытается повторно извлечь файл с сервера, иВпоследствии сервер перенаправляет на модуль, регенерирует контент и, по существу, подает его свежим.Я ожидаю, что IIS вместо этого вернет клиенту значение 304 или будет обслуживать содержимое из кэша и избежать полного вызова модуля.

Кажется, модуль возвращает правильные заголовки кэша:

http://www.mydomain.com/SpecialPath/File_17aa85bf3bf430066a0524787be6af7b9363c8ae.js

Cache-Control public, max-age = 1800

Content-Encoding gzip

Content-Length 60568

Application-Type application / x-Javascript;charset = utf-8

Дата Вт, 27 марта 2012 20:25:42 GMT

Etag 17aa85bf3bf430066a0524787be6af7b9363c8ae

Last-Modified Вт, 27 марта 2012 20:25:43GMT

Сервер Microsoft-IIS / 7.5

Разное Accept-Encoding

X-AspNet-версия 4.0.30319

Когда я использую F5 запрос браузеразаголовки также в порядке:

Cache-Control max-age = 0

If-Modified-Since Вт, 27 марта 2012 20:25:21 GMT

If-None-Match 17aa85bf3bf430066a0524787be6af7b9363c8ae

Однако, если я устанавливаю точку останова, я вижу, что запрос передается в модуль.

304 никогда не возвращается, и при этом содержимое никогда не подается из кэша вывода.

Нужно ли делать что-то дополнительное или специальное, чтобы получить кэширование вывода для кэширования содержимого, возвращаемого из пользовательского модуля??

Что-то не так с моими заголовками?

1 Ответ

2 голосов
/ 02 ноября 2012

Last-Modified Вт, 27 марта 2012 20:25:43 GMT If-Modified-Since Вт, 27 марта 2012 20:25:21 GMT

Ресурс изменяется через 22 секунды после значения IMS,поэтому 304 не возвращается

...