как я могу получить сжатие gzip в iis7 работает?

<p>я установил статическое и динамическое сжатие для iis7, а также установил два значения <code>web.config</code> на уровне моего приложения <code>virtual folder</code>. насколько я понимаю, мне больше не нужно включать сжатие на сервере или на уровне сайта, и я могу управлять им отдельно для каждой папки, используя мой файл web.config.</p><p>в моем файле <code>.config</code> есть две настройки, которые я настроил для настройки gzip для своего приложения:</p><pre><code><httpcompression dynamiccompressiondisablecpuusage="90" dynamiccompressionenablecpuusage="0"> <scheme name="gzip" dll="%windir%\system32\inetsrv\gzip.dll" /> <dynamictypes> <remove mimetype="*/*"/> <add mimetype="*/*" enabled="true" /> </dynamictypes> </httpcompression> <urlcompression dodynamiccompression="true" dynamiccompressionbeforecache="true" /> </code></pre><p>однако, когда я запускаю приложение, я ясно вижу, что gzip не используется, потому что мои размеры страниц одинаковы. я также использую <a href="http://developer.yahoo.com/yslow/">yslow</a> для firefox, что также подтверждает, что мои страницы не заархивированы.</p><p>что мне здесь не хватает? в iis6 было просто указать типы файлов и установить уровень сжатия от 0 до 10. я не вижу необходимости документирования для указания типов файлов или уровня сжатия, поскольку значения по умолчанию, по-видимому, охватывают типы файлов, и я нигде не вижу уровня.</p>

<p>во время бета-версии iis 7 на форумах форумов об этом была ветка. оказалось, что у парня не было установленных модулей, но похоже, что вы исключили это из своего первого предложения.</p><p>основной совет microsoft для него состоял в том, чтобы включить отслеживание неудачных запросов, чтобы выяснить, что происходит не так. возможно, это одна из самых недооцененных функций iis7, но, безусловно, одна из самых мощных. </p><ul> <li>откройте iis manager.</li> <li>перейдите на свой сайт и на панели действий (в крайнем правом углу) нажмите «отслеживание невыполненных запросов ...» в разделе «настройка».</li> <li>нажмите «включить». </li> <li>затем в представлении функций нажмите «правила отслеживания невыполненных запросов». нажмите «добавить», затем введите 200 для кода состояния, затем нажмите «готово».</li> </ul><p>если вы не видите «отслеживание невыполненных запросов» на панели действий, вам нужно добавить эту функцию на сервер - либо с помощью мастера «добавление служб ролей» (health and diagnostics\tracing), либо через установщик веб-платформы (продукты\сервер\iis: трассировка), а затем закройте и снова откройте iis manager.</p><p>затем повторите тест. это создаст некоторую информацию журнала для нас, чтобы исследовать.</p><p>посмотрите в c:\inetpub\logs\failedreqlogfiles\w3svcx. вы увидите группу файлов с именем fr000xx.xml. откройте любой из них в вашем браузере. (кстати, если вы копируете эти файлы куда-либо, убедитесь, что файл freb.xsl находится там. кроме того, не удаляйте freb.xsl - если вы это сделаете, просто удалите весь каталог или скопируйте его из другого места, например iis создает его только один раз для каждой папки.)</p><p>перейдите на вкладку «детали запроса» и выберите «полная трассировка запроса». поищите на странице «компресс» - вы должны найти его в нескольких областях; один раз для статического контента и один раз для динамического контента. </p><p>если вы не найдете ни одного из них, iis настроен неправильно. если вы найдете их, вы должны увидеть их, после чего следует сжатие\_доступа и сжатие\_до. успех говорит само за себя; «do» указывает на то, что он сделал - в моем случае он показал «originalsize 1462784 compressedsize 179482»</p><p>так как ваш не работает, надеюсь, вы увидите что-то другое, что поможет вам решить проблему.</p><p>обязательно отключите эту функцию, отключив отслеживание невыполненных запросов на панели действий для своего веб-сайта.</p>

<p>у нас была похожая проблема, и оказалось, что iis7 выполняет некоторое динамическое регулирование на основе процессора здесь ..</p><p> <a href="http://www.iis.net/configreference/system.webserver/httpcompression">http://www.iis.net/configreference/system.webserver/httpcompression</a> </p><blockquote> <p><code>dynamiccompressiondisablecpuusage</code></p> <p>необязательный атрибут uint.</p> <p>определяет процент использования цп, при котором динамическое сжатие будет отключено.</p> <p>примечание. этот атрибут действует как верхний предел цп, при котором динамическое сжатие отключено. когда загрузка цп падает ниже значения, указанного в атрибуте dynamiccompressionenablecpuusage, динамическое сжатие будет снова включено.</p> <p><strong>значение по умолчанию - 90.</strong></p> <hr> <p>dynamiccompressionenablecpuusage</p> <p>необязательный атрибут uint.</p> <p>определяет процент использования цп, ниже которого будет включено динамическое сжатие. значение должно быть в диапазоне от 0 до 100. среднее использование цп рассчитывается каждые 30 секунд.</p> <p>примечание. этот атрибут действует как нижний предел цп, ниже которого включено динамическое сжатие. когда загрузка цп превысит значение, указанное в атрибуте dynamiccompressiondisablecpuusage, динамическое сжатие будет отключено.</p> <p><strong>значение по умолчанию - 50.</strong></p> </blockquote><p>обратите внимание на настройки по умолчанию - если ваш iis7 достигает 90% загрузки цп, он будет <em>отключать весь динамический сжатый контент</em> \_, пока загрузка цп не станет ниже 50%!</p><p>кроме того, здесь приведены некоторые отличные рекомендации и ориентиры по реальной стоимости процессора gzip.</p><p> <a href="http://weblogs.asp.net/owscott/archive/2009/02/22/iis-7-compression-good-bad-how-much.aspx">http://weblogs.asp.net/owscott/archive/2009/02/22/iis-7-compression-good-bad-how-much.aspx</a> </p><p>короче говоря, если у вас нет динамических страниц, размер которых превышает 200 кб, это не проблема.</p>

<p>следуя прекрасному совету johnw, я тоже включил ведение журнала, чтобы найти виновника, хотя причина неудачи оказалась другой:</p><pre><code>static\_compression\_not\_success reason 14 reason not\_frequently\_hit </code></pre><p>короче говоря, кажется, что если вы не заходите на страницу достаточно часто, то iis7 не сочтет ее достойной сжатия, что мне кажется немного странным. тем не менее, имеет смысл в этом случае, потому что я просто пытался проверить его на локальной машине.</p><p>в соответствии с <a href="http://www.iis.net/configreference/system.webserver/serverruntime#005">этой страницей</a> , по умолчанию создается впечатление, что страница должна быть нажата 2 раза в течение 10 секунд, чтобы быть "частым попаданием". если вы действительно хотите, вы можете переопределить значение по умолчанию в applicationhost.config (% systemroot%\windows\system32\inetsrv\config). по крайней мере, для меня это заблокированный атрибут, поэтому вы не сможете переопределить его в своем собственном файле web.config.</p><pre><code><serverruntime frequenthitthreshold="1" /> </code></pre><p>кроме того, теперь я отмечаю, что у so уже был такой ответ: <a href="https://stackoverflow.com/questions/2203798/in-iis7-gzipped-files-do-not-stay-that-way">в iis7 сжатые файлы не сохраняются таким образом</a> .</p>

<p>я решил свою проблему, установив динамическое сжатие в установка и удаление программ.</p>

<p>включить статическое сжатие. динамическое сжатие для динамических страниц, таких как asp, php, aspx и т. д.</p><p>вот ссылка на ссылку конфигурации <a href="http://www.iis.net/configreference/system.webserver/httpcompression">iis для сжатия</a> : </p>

<p>для меня это оказалось настройкой</p><pre><code>nocompressionforproxies </code></pre><p>как мы на прокси здесь ... снял себя с прокси и вуаля, сжатие.</p>