2016-07-28 12 views
1

Я использую HTTP-сжатие, предоставляемое IIS для gziping статического и динамического содержимого моих сайтов. Я вижу, что содержимое gzipped возвращается в браузер (заголовок Content-Encoding в ответе также показывает gzip). Все мои пулы приложений используют идентификатор сетевой службы, и я дал полный контроль над папкой сжатия (D: \ Compression) в Network Service. Я установил staticCompressionIgnoreHitFrequency в True, а также в Configuration Editor => system.webServer => httpCompression location.Отсутствие файлов сжатия HTTP

Проблема заключается в том, что я вижу папки, созданные под папкой сжатия, но в них нет файлов.

+0

Используйте FREB, чтобы узнать, почему статическое сжатие не работает должным образом, см. [Мой ответ] (http://stackoverflow.com/questions/38638490/gzip-not-working-server-2012-iis-8/38639574 # 38639574) –

+0

Спасибо @PeterHahndorf. Я ссылался на неудавшиеся журналы запросов и обнаружил, что причина NO_MATCHING_CONTENT_TYPE. Не уверен, зачем я это получаю. У меня уже есть тип 'text/*' mime, который включен как в статических, так и в динамических разделах моего файла applicationHost.config. Просто чтобы проверить, я включил '*/*', но все еще получаю эту ошибку. После внесения этих изменений я перезапустил IIS. –

+0

Извините @PeterHahndorf. Забыл упомянуть, что я обращаюсь к странице aspx, поэтому это не должно быть проблемой, так как она будет иметь text/html в качестве типа mime при возврате клиенту. –

ответ

0

Я думаю, что вы видите ожидаемое поведение.

Сжатые файлы в system.webServer\httpCompression\directory будут существовать только для сжатых статических файлов, сжатых StaticCompressionModule и обычно обрабатываемых StaticFileModule.

Любые запросы, обрабатываемые инфраструктурами приложений, такими как asp.NET, не обрабатываются модулем StaticCompressionModule по дизайну. Они могут обрабатываться с помощью DynamicCompressionModule, но этот модуль не записывает никаких файлов на диск.

Вы можете проверить это, создав большой файл test.html, нажмите его несколько раз, сжатая версия появится в temp\IIS Temporary Compressed Files, теперь сделайте копию этого файла с именем test.aspx, нажмите на него, не будет сжиматься.

Статическое сжатие предназначено только для статических файлов, которые не сильно меняются, поэтому нет смысла иметь сжатую версию динамической страницы на диске, потому что ожидание в том, что контент изменяется очень часто.

+0

Большое спасибо @Peter Hahndorf. Я неправильно подумал, что он сохранит как статический, так и динамический gzipped-контент в каталоге system.webServer \ httpCompression \. Я пробовал проголосовать за ответ, но имел меньшую репутацию. –