Как программно включить функцию динамического сжатия IIS? - PullRequest
7 голосов
/ 05 марта 2010

Я делаю программу установки для моего веб-приложения. Мое веб-приложение интенсивно использует CSS и JS, поэтому я хочу включить статическое и динамическое сжатие Http для IIS7 / 7.5.

Требуется 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 # в моем установщике.

Есть идеи, как мне это сделать? Благодаря.

Ответы [ 4 ]

8 голосов
/ 03 июня 2014

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

dism / online / enable-feature / namename: IIS-HttpCompressionDynamic

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

4 голосов
/ 06 февраля 2015

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

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

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

1 голос
/ 20 марта 2010

Отказ от ответственности: это абсолютно недоказано и не проверено ....

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

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

Итак ... имея быстрый поиск в Google, я зашел на эту страницу .

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

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

Start /w pkgmgr /iu:IIS-HttpCompressionDynamic

?? возможно :) 1018 *

вот еще одна статья с дополнительными опциями ...

1 голос
/ 05 марта 2010

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

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

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

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

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

...