То, почему IIS 7, игнорирует бесспорный (но не все) типы MIME для сжатия? Предоставление ошибки: DYNAMIC_COMPRESSION_NOT_SUCCESS - Причина 12

Мы используем маленькое локальное устройство компаний. www.revinetix.com

D2D2D копируют стиль.

Это делает почтовый ящик, и почтовый уровень копируют и восстанавливают. Работать отлично с Exchange 2007 в течение прошлого месяца или около этого. Я могу просмотреть в резервное копирование и восстановить любую часть почты. Нам нравится он, потому что это не имеет затрат клиентской лицензии, они заряжаются на основе способности, и это довольно разумно. Это - устройство все же.

Brian

11
задан 13 October 2014 в 22:07
4 ответа

Хорошо, оказывается, что Вы не можете настроить это в web.config, только appHost.config. Я предположил, что в документах действительно говорилось, что appHost.config, но я принял это, был спецификацией общего понятия, не единственным допустимым местоположением конфигурации.

7
ответ дан 2 December 2019 в 21:52
  • 1
    Корректный. конфигурация system.webServer не делает позволяет httpCompression на уровне веб-сайта. Можно настроить то же в корне т.е. в applicationhost.config. –  Vivek Kumbhar 23 March 2010 в 01:40
  • 2
    См. мой ответ - по умолчанию, чистая установка IIS выключает web.config переопределения настроек сжатия, который является, почему необходимо изменить applicationHost.config. Вместо того, чтобы изменить настройки сжатия там, хотя, можно просто позволить переопределения и you' ре назад в бизнесе. –  mcw0933 13 October 2014 в 21:04

Peter, спасибо за подсказку - мы также нашли ту установку

<add mimeType="application/atom+xml; charset=utf-8" enabled="true" />

в <httpCompression> раздел applicationHost.config зафиксированный это.

Мы также должны были указать кодирование из-за ошибки в коде сжатия:

Существует ошибка в коде сжатия, что это не анализирует набор символов в заголовке ответа правильно, таким образом, необходимо будет настроить "application/xml; charset=utf-8" в динамических настройках сжатия, чтобы иметь его работа.

Вот соответствующий раздел полностью

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" dynamicCompressionLevel="4" />
    <scheme name="deflate" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" dynamicCompressionLevel="4" />
    <dynamicTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/x-javascript" enabled="true" />
        <add mimeType="application/atom+xml; charset=utf-8" enabled="true" />
        <add mimeType="*/*" enabled="false" />
    </dynamicTypes>
    <staticTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/javascript" enabled="true" />
        <add mimeType="*/*" enabled="false" />
    </staticTypes>
</httpCompression>
3
ответ дан 2 December 2019 в 21:52

При новой установке мой applicationHost.config % windir% \ system32 \ inetsrv \ config ) имел следующий параметр:

<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />

... а также набор типов MIME по умолчанию для сжатия, который, к сожалению, не включает JSON и другие типы данных, которые были бы хорошими кандидатами на сжатие.

Переключение этого на:

<section name="httpCompression" overrideModeDefault="Allow" />

позволяет настроить httpCompression в теге system.webServer в моем web.config .

Я подтвердил это, установив в разделе httpCompression файла applicationHost.config значение:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
    <dynamicTypes>
        <add mimeType="*/*" enabled="false" />
    </dynamicTypes>
    <staticTypes>
        <add mimeType="*/*" enabled="false" />
    </staticTypes>
</httpCompression>

... и теперь я могу установить все типы MIME, которые действительно хочу сжать в web.config .

3
ответ дан 2 December 2019 в 21:52

Чтобы добавить отсутствующие типы mimetypes из PowerShell, используйте следующие команды:

Add-WebConfiguration -Filter '/system.webServer/httpCompression/staticTypes' -PSPath 'IIS:\' -AtIndex 0 -Value @{mimeType='application/javascript'; enabled='True'}

Add-WebConfiguration -Filter '/system.webServer/httpCompression/staticTypes' -PSPath 'IIS:\' -AtIndex 0 -Value @{mimeType='image/svg+xml'; enabled='True'}

Add-WebConfiguration -Filter '/system.webServer/httpCompression/staticTypes' -PSPath 'IIS:\' -AtIndex 0 -Value @{mimeType='text/css'; enabled='True'}

Обратите внимание, что порядок mimeTypes важен, поскольку IIS, похоже, берет первое совпадение. Это означает, что mimeTypes с подстановочными знаками (*) должны быть ниже mimeTypes без подстановочных знаков. Поэтому убедитесь, что mimeType * / * находится внизу, так как любая запись ниже не будет использоваться

Изменить:

IIS отстой, поэтому лучший вариант - просто очистить staticTypes и снова сложите все в правильном порядке:

Clear-WebConfiguration -Filter "//system.webServer/httpCompression/staticTypes/add" -PSPath 'IIS:\'

SetCompressionOfMimeType 'text/*' 'True'
SetCompressionOfMimeType 'application/javascript' 'True'
SetCompressionOfMimeType 'image/svg+xml' 'True'
SetCompressionOfMimeType 'text/css' 'True'
SetCompressionOfMimeType '*/*' 'False'


function SetCompressionOfMimeType($mimeType, $enabled){
    Write-Output "Setting compression for $mimeType to $enabled"
    Add-WebConfiguration -Filter '/system.webServer/httpCompression/staticTypes' -PSPath 'IIS:\' -Value @{mimeType=$mimeType; enabled=$enabled}
}
0
ответ дан 2 December 2019 в 21:52

Теги

Похожие вопросы