В Firebug заголовок запроса имеет следующую запись:
Accept-Encoding: gzip, deflate
Но нет:
Content-Encoding: gzip
в заголовке ответа.
Независимо от того, что я пробовал, после ряда ответов на SO и других сайтах, похоже, ничего не работает! Ни статические, ни динамические файлы не сжимаются, или, по крайней мере, если они есть, кодировка содержимого отсутствует - значение gzip возвращается в заголовке ответа.
Вот пример моих настроек web.config:
<urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="true" />
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" minFileSizeForComp="150" staticCompressionIgnoreHitFrequency="true">
<remove name="gzip" />
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="8" dynamicCompressionLevel="8" />
</httpCompression>
Я проигнорировал частоту обращений staticCompressionIgnoreHitFrequency="true
"
Я подтвердил, что IIS на самом деле сжимает файлы, которые я вижу в:
C: \ inetpub \ temp \ IIS Temporary Compressed Files
Как указано здесь: настроить gzip в IIS 8 windows 8
Я убедился, что статическое и динамическое сжатие включено в Windows Features> Internet Information Services> WWW Services> Performance Features.
Я также пробовал подход этого парня:
Сжатие IIS 7.5 создает сжатый файл, но возвращает несжатый
Изменить 1:
версия IIS - 10, но я также пробовал это на IIS 8.5.
Редактировать 2:
Теперь я также пробовал различные файлы конфигурации, найденные по этой ссылке: https://github.com/h5bp/server-configs-iis/, в котором представлены файлы web.config, похожие на "лучшие практики".
Не решено < / сильный>
Редактировать 3:
На основе ввода @Nkosi я создал полностью новое приложение Asp.net MVC и настроил его, используя все эти варианты, которые я пробовал. Вот исходный заголовок, который я получил от Fiddler:
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: text/javascript; charset=UTF-8
Expires: Wed, 20 Jul 2016 18:22:47 GMT
Last-Modified: Wed, 20 Jul 2016 18:22:47 GMT
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 20 Jul 2016 18:22:47 GMT
Как видите, нет Content-Encoding: Gzip
Не решено
Изменить 4:
Я пробовал этот подход добавления кода к событию BeginRequest в разделе Global.asax: https://stackoverflow.com/a/27185575/392591
Не решено
Изменить 5:
Итак, я просто попытался включить трассировку на основе этого ответа на SO: https://stackoverflow.com/a/33182525/392591
Никаких сбоев, но я заметил, что прямо в нижней части файла трассировки есть раздел GENERAL_RESPONSE_HEADERS, и вот что он предоставляет:
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Server: Microsoft-IIS/10.0
X-AspNetMvc-Version: 5.2
X-AspNet-Version: 4.0.30319
X-Powered-By: My Little Pony
X-UA-Compatible: IE=Edge,chrome=1
И это для каждого файла статического типа.
Однако я только что нашел в файле трассировки следующее:
8. STATIC_COMPRESSION_START 08:04:03.552
9. STATIC_COMPRESSION_NOT_SUCCESS Reason="NOT_FREQUENTLY_HIT" 08:04:03.552
10. STATIC_COMPRESSION_END 08:04:03.552
Сжатие не удалось по причине нечасто срабатывания ... Странно, потому что у меня определенно установлено значение параметра «Игнорировать частоту срабатывания» в значение «Истина»!
Поэтому я просто зашел в диспетчер IIS и на сервере установил для параметра Ignore Hit Frequency значение true (т.е. applicationHost.config) и изменил вывод файла трассировки на следующее:
8. STATIC_COMPRESSION_START 08:19:17.489
9. STATIC_COMPRESSION_SUCCESS 08:19:17.489
10. STATIC_COMPRESSION_END 08:19:17.489
Я вернулся и отключил его в applicationHost.config, и он вернулся к Static Compression Not Success, так что это определенно имеет значение. Однако, когда я смотрю на FireBug, он по-прежнему доставляет несжатый файл без заголовка ответа GZIP Content Encoding.
Еще один интересный момент, который я заметил в трассировке неудачных запросов, - это последние два входа GENERAL_FLUSH_RESPONSE_END и GENERAL_REQUEST_END, оба из которых показывают, что мой файл Bootstrap.css отправил 17903 байта, примерно 18 КБ, что соответствует сжатой версии файла, который я вижу в моем IIS Temporary Compressed. Папка с файлами. Таким образом, файл физически сжимается, и, согласно трассировке Failed Request, он отправляет правильный контент ... но вместо этого браузер забирает полный файл размером 117 КБ?
Не решено
<urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="false" />
. Когда я делаю тестовые запросы из браузера (Firefox, IE11, Edge, Google Chrome) к простому приложению MVC. Все запросы содержатAccept-Encoding: gzip, deflate
, а ответы возвращаютContent-Encoding:gzip
- person Nkosi   schedule 18.07.2016