5

Я делаю программу установщика для своего веб-приложения. Мое веб-приложение сильно использует CSS и JS, поэтому я хочу включить как статическое, так и динамическое HttpCompression для IIS7/7.5.Как включить программную функцию DynamicCompression для IIS?

Она нуждается в 2 этапа:

  1. Я модифицировал web.config, положить <httpcompression> тег, это нормально.
  2. DynamicContentCompression должен быть включен в Windows Feature, чтобы сделать работу httpCompression.

Статическое HttpCompression включено по умолчанию в IIS7 и IIS7.5, но динамическое HttpCompression не включено по умолчанию (хотя оно доступно). Я могу сделать вручную, включив: Start/ControlPanel/ProgramsAndFeatures/TurnWindowsFeatures on or Off/IIS/WWW Service/Performance features/Dynamic Content Compression, но Как я могу программно включить его в эту функцию Windows? Я могу использовать PowerShell, C# в моем установщике.

Любая идея, как я могу это сделать? Благодарю.

ответ

0

Вы можете включить это, используя инструмент appcmd. Из командной строки:

C:\windows\system32\inetsrv\appcmd set config /section:urlCompression /doDynamicCompression:True 

Или, если вы хотите, чтобы выполнить его из сценария PowerShell:

& $env:windir\system32\inetsrv\appcmd set config -section:urlCompression /doDynamicCompression:true 

Вы будете нуждаться права администратора, чтобы сделать либо.

+0

Спасибо, Грег, но что addcmd не 'Включает функцию Windows 'Мне нужно. –

1

Отказ от ответственности: это совершенно недоказанной и непроверенной ....

ответ Грега выше почти сразу же, но только разблокирует установленная функция. По умолчанию, когда эта функция установлена, она заблокирована ... полностью вниз на уровне машины.

Рациональное объясняется тем, что динамическое сжатие может действительно работать с сервером. Таким образом, в среде хостинга это может убить вещи. Даже с вашим собственным выделенным сервером, это может также убить вещи плохо. Таким образом, безопасный маршрут состоит в том, чтобы заблокировать его по умолчанию, и только если вы знаете, что делаете, тогда откройте его и откройте.

Итак .. с быстрым поиском google, i came to this page.

Обратите внимание, что в этой статье о техническом оборудовании имеется командная строка для установки всех необходимых пакетов для статического IIS-сервера. Я знаю, что ваш вопрос не для статического сервера IIS ... но он делает все возможное.

Так что я предполагаю ... может быть, это? :

Start /w pkgmgr /iu:IIS-HttpCompressionDynamic 

?? возможно:

here's another article with more options ...

6

Это так, как я бы это сделал:

DISM/онлайн/включения-функция/FeatureName: IIS-HttpCompressionDynamic

DISM позволяет проверить код возврата команды, что позволяет проверить что он работал (или был уже установлен)

4

Эти команды PowerShell добавят функцию динамического сжатия.

Import-Module ServerManager 
Add-WindowsFeature Web-Server, Web-Dyn-Compression 

Не забудьте запустить как администратор или иметь права администратора.

+1

Пожалуйста, улучшите свой ответ –

+0

Это сработало для меня и на IIS8. – nkassis