По умолчанию IIS установил HTTP-модуль сжатия gzip. Позже я установил Brotli Compression HTTP Module для IIS, чтобы улучшить степень сжатия для просмотра содержимого. В ApplicationHost.config brotli был добавлен в трех местах, как показано ниже.
- globalModules
- httpCompression
modules
<system.webServer>
<globalModules>
<add name="BrotliCompressionModule" image="%Windir%\system32\inetsrv\IisBrotli.dll" preCondition="bitness64" />
</globalModules>
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<scheme name="br" dll="%Windir%\system32\inetsrv\IisBrotli.dll" staticCompressionLevel="5" dynamicCompressionLevel="5" />
</httpCompression>
<location path="" overrideMode="Allow">
<system.webServer>
<modules>
<add name="BrotliCompressionModule" preCondition="managedHandler,runtimeVersionv4.0" />
</modules>
</system.webServer>
</location>
У меня есть приложение для панели мониторинга, которое является 32-разрядным приложением и совместимо с IIS. Приложение работало нормально до установки HTTP-модуля Brotli Compression в IIS.
После установки сжатия brotli приложение не работает из-за того, что brotli остановил пул DashboardApplication. Затем я обнаружил следующую root причину этой проблемы.
Brotli - это 64-битное приложение, которое не позволяет использовать мое 32-битное приложение на IIS. Основываясь на решениях форума, я добавил preConditon = "bitness64", который помогает запускать globalModules только для 64-битных приложений.
Данное решение помогло избежать остановки пула приложений. Затем возникла новая проблема: не удалось найти файл BrotliCompressionModule. Мы нашли решение удалить модуль brotli из web.config моего приложения, как показано ниже. Это помогло решить проблему с не найденным файлом.
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="BrotliCompressionModule" />
</modules>
</system.webServer>
Затем возникла другая проблема - Ошибка 500.19 HTTP - возникла внутренняя ошибка сервера с кодом ошибки 0x800700c1.
Мы уже избежали сжатия brotli в локальном разделе, но не в разделе.
Если я удалил Brotli из раздела httpCompression, мое 32-битное приложение панели мониторинга работает хорошо. но он не будет сжимать другое приложение в модуле brotli.
Я подозреваю, что нам также нужно избегать brotli в разделе httpCompression, но я не нашел решения.
Примечание: мне нужны оба сжатия gzip и br (Brotli). Поскольку Brotli будет использоваться для других моих 64-битных приложений.
Можно ли отключить сжатие brotli для конкретного 32-битного приложения на IIS? В то же время Brotli нужно работать на других сайтах приложений.
Заранее спасибо.