Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обзор
Элемент <httpCompression>
задает параметры сжатия HTTP для служб IIS 7. Сжатие HTTP может обеспечить более быстрое время передачи между службами IIS и клиентскими браузерами, которые могут принимать сжатые файлы.
Примечание.
HTTP-клиент должен инициировать связь для сжатого содержимого, отправив соответствующий заголовок http Accept-encoding. Если клиент не поддерживает сжатие HTTP, он не будет передавать этот заголовок, а IIS 7 всегда возвращает несжатое содержимое.
Существует два различных типа сжатия, которые использует IIS 7:
Статическое сжатие:
IIS 7 кэширует сжатое статическое содержимое в пути, заданном атрибутом каталога , что повышает производительность сжатия, устраняя необходимость повторного сжатия содержимого, которое уже было сжато. После сжатия файла IIS 7 последующие запросы получают сжатые копии файла из каталога кэша.
Атрибуты staticCompressionEnableCpuUsage и staticCompressionDisableCpuUsage указывают, когда IIS 7 сжимает статические файлы на основе использования ЦП.
Следует использовать статическое сжатие с файлами, которые обычно не изменяются, например HTML-файлы (*.html, *.htm), текстовые файлы (*.txt), документы Microsoft Office (*.doc, *.xls, *.ppt) и т. д. Размер этих файлов можно уменьшить с помощью сжатия, что сокращает время загрузки для клиентских запросов и уменьшает пропускную способность на сервере.
Примечание.
Файлы изображений, такие как *.jpg и *.png файлы, также являются статическими файлами, но обычно они не используют сжатие HTTP, так как эти файлы образа уже сжаты.
Динамическое сжатие:
В отличие от статического сжатия, IIS 7 выполняет динамическое сжатие каждый раз, когда клиент запрашивает содержимое, но сжатая версия не кэшируется на диск. Это изменение происходит из-за основного различия между статическим и динамическим содержимым. Статическое содержимое не изменяется. Однако динамическое содержимое обычно представляет собой содержимое, созданное приложением, поэтому часто изменяется, например активные страницы сервера (ASP) или ASP.NET содержимое. Так как динамическое содержимое часто должно изменяться, IIS 7 не кэширует его.
Атрибуты dynamicCompressionEnableCpuUsage и dynamicCompressionDisableCpuUsage указывают, когда IIS 7 сжимает динамические файлы на основе использования ЦП.
IIS 7 поддерживает две различные отраслевые схемы сжатия:
- Deflate — эта форма сжатия задокументирована в спецификации Requests For Comment (RFC) 1951.
- GZIP (GNU ZIP) — эта форма сжатия задокументирована в спецификации Requests For Comment (RFC) 1952.
Каждая из этих двух схем сжатия может быть включена с помощью <schemes>
элемента <httpCompression>
элемента.
Примечание.
<httpCompression>
Хотя элемент задает параметры сжатия HTTP для IIS 7, <элемент URLCompression> указывает, включено ли сжатие для пространства имен URL-адресов.
Совместимость
Версия | Примечания. |
---|---|
IIS 10.0 | Элемент <httpCompression> не был изменен в IIS 10.0. |
IIS 8.5 | Атрибут staticCompressionIgnoreHitFrequency был добавлен в IIS 8.5. |
IIS 8.0 | Элемент <httpCompression> не был изменен в IIS 8.0. |
IIS 7.5 | В IIS 7.5 значение по умолчанию для атрибута minFileSizeForComp было изменено, а dynamicCompressionBufferLimit атрибут был добавлен. |
IIS 7.0 | Элемент <httpCompression> появился в IIS 7.0. |
IIS 6.0 | Элемент <httpCompression> заменяет следующие свойства метабазы IIS 6.0:
|
Настройка
Сжатие HTTP обычно доступно для установки IIS 7 и более поздних версий. Однако по умолчанию устанавливается только статическое сжатие. Чтобы установить статическое или динамическое сжатие, выполните следующие действия.
Windows Server 2012 или Windows Server 2012 R2
- На панели задач щелкните диспетчер серверов.
- В диспетчере серверов щелкните меню "Управление " и выберите пункт "Добавить роли и компоненты".
- В мастере добавления ролей и компонентов нажмите кнопку "Далее". Выберите тип установки и нажмите кнопку "Далее". Выберите целевой сервер и нажмите кнопку "Далее".
- На странице ролей сервера разверните веб-сервер (IIS), разверните веб-сервер, разверните узел Производительность, а затем выберите сжатие статического содержимого и (или) динамическое сжатие содержимого. Нажмите кнопку Далее.
.
- На странице Выбор компонентов нажмите кнопку Далее.
- На странице Подтверждение выбранных элементов для установки щелкните Установить.
- На странице результатов нажмите кнопку "Закрыть".
Windows 8 или Windows 8.1
- На начальном экране переместите указатель на левый нижний угол, щелкните правой кнопкой " Пуск " и выберите панель управления.
- На панели управления щелкните "Программы и компоненты", а затем нажмите кнопку "Включить или отключить функции Windows".
- Разверните службы Internet Information Services, разверните веб-службы World Wide, разверните функции производительности, а затем выберите динамическое сжатие содержимого и (или) сжатие статического содержимого.
- Щелкните OK.
- Нажмите кнопку Закрыть.
Windows Server 2008 или Windows Server 2008 R2
- На панели задач нажмите кнопку "Пуск", наведите указатель мыши на администрирование и выберите диспетчер серверов.
- В области иерархии диспетчера серверов разверните узел "Роли" и выберите веб-сервер (IIS).
- В области веб-сервера (IIS) прокрутите страницу до раздела "Службы ролей " и нажмите кнопку "Добавить службы ролей".
- На странице "Выбор служб ролей" мастера добавления служб ролейвыберите динамическое сжатие содержимого, если требуется установить динамическое сжатие и сжатие статического содержимого, если требуется установить статическое сжатие, а затем нажмите кнопку "Далее".
- На странице "Подтверждение выбора установки" нажмите кнопку "Установить".
- На странице результатов нажмите кнопку "Закрыть".
Windows Vista или Windows 7
- На панели задач нажмите кнопку "Пуск" и нажмите кнопку "Панель управления".
- На панели управления щелкните "Программы и компоненты", а затем нажмите кнопку "Включить или отключить компоненты Windows".
- Разверните службы Internet Information Services, а затем веб-службы World Wide, а затем функции производительности.
- Если вы хотите установить динамическое сжатие и сжатие статического содержимого, выберите "Динамический сжатие HTTP", если требуется установить статическое сжатие.
- Щелкните OK.
Как сделать
Включение или отключение статического и динамического сжатия для сайта или приложения
Откройте диспетчер служб IIS:
Если вы используете Windows Server 2012 или Windows Server 2012 R2:
- На панели задач щелкните диспетчер серверов, щелкните "Сервис" и выберите диспетчер служб IIS.
Если вы используете Windows 8 или Windows 8.1:
- Удерживайте клавишу Windows , нажимайте букву X, а затем нажмите кнопку "Панель управления".
- Щелкните "Администрирование" и дважды щелкните диспетчер служб IIS.
Если вы используете Windows Server 2008 или Windows Server 2008 R2:
- На панели задач нажмите кнопку "Пуск", наведите указатель на администрирование и выберите диспетчер служб IIS.
Если вы используете Windows Vista или Windows 7:
- На панели задач нажмите кнопку "Пуск" и нажмите кнопку "Панель управления".
- Дважды щелкните " Администрирование" и дважды щелкните диспетчер служб IIS.
В области "Подключения" перейдите к подключению, сайту, приложению или каталогу, для которого требуется включить сжатие.
В области сжатия установите флажки, чтобы включить статическое или динамическое сжатие, или удалить флажки, чтобы отключить статическое или динамическое сжатие.
Завершив описанные выше действия, нажмите кнопку "Применить " на панели "Действия ".
Включение или отключение статического и динамического сжатия для сервера
Откройте диспетчер служб IIS:
Если вы используете Windows Server 2012 или Windows Server 2012 R2:
- На панели задач щелкните диспетчер серверов, щелкните "Сервис" и выберите диспетчер служб IIS.
Если вы используете Windows 8 или Windows 8.1:
- Удерживайте клавишу Windows , нажимайте букву X, а затем нажмите кнопку "Панель управления".
- Щелкните "Администрирование" и дважды щелкните диспетчер служб IIS.
Если вы используете Windows Server 2008 или Windows Server 2008 R2:
- На панели задач нажмите кнопку "Пуск", наведите указатель на администрирование и выберите диспетчер служб IIS.
Если вы используете Windows Vista или Windows 7:
- На панели задач нажмите кнопку "Пуск" и нажмите кнопку "Панель управления".
- Дважды щелкните " Администрирование" и дважды щелкните диспетчер служб IIS.
В области "Подключения" выделите имя сервера.
В области сжатия установите флажки, чтобы включить статическое или динамическое сжатие, или удалить флажки, чтобы отключить статическое или динамическое сжатие.
Завершив описанные выше действия, нажмите кнопку "Применить " на панели "Действия ".
Настройка staticCompressionIgnoreHitFrequency
Откройте диспетчер служб IIS:
Если вы используете Windows Server 2012 R2:
- На панели задач щелкните диспетчер серверов, щелкните "Сервис" и выберите диспетчер служб IIS.
Если вы используете Windows 8.1:
- Удерживайте клавишу Windows , нажимайте букву X, а затем нажмите кнопку "Панель управления".
- Щелкните "Администрирование" и дважды щелкните диспетчер служб IIS.
В области "Подключения" выберите сервер и дважды щелкните редактор конфигурации.
В редакторе конфигурации в разделе выберите system.webServer и выберите httpCompression.
Для staticCompressionIgnoreHitFrequency введите
True
, чтобы отключить поведение, которое сжимается статический файл, только если он попадает в определенное количество раз за определенный период времени или введитеFalse
, чтобы включить поведение.
В области Действия нажмите кнопку Применить.
Конфигурация
Атрибуты
Эти атрибуты можно настроить только на уровне сервера. Конфигурация на уровне сайта или ниже будет игнорироваться.
Атрибут | Описание |
---|---|
cacheControlHeader |
Необязательный строковый атрибут. Указывает директиву, которую IIS добавляет в заголовок Cache-Control, который переопределяет заголовок HTTP Expires. Этот атрибут гарантирует, что старые клиенты и прокси-серверы не пытаются кэшировать сжатые файлы. Чтобы включить этот параметр, необходимо задать для атрибута sendCacheHeadersзначение true. Перед внесением изменений в это свойство в силу необходимо перезапустить службу WWW. Значение по умолчанию — max-age=86400 . |
directory |
Необязательный строковый атрибут. Указывает каталог, в котором сжатые версии статических файлов временно хранятся и кэшируются. Заметка: В IIS 6.0 путь к каталогу по умолчанию для временных сжатых файлов IIS был %windir%\IIS Временные сжатые файлы. Значение по умолчанию — %SystemDrive%\inetpub\temp\IIS Temporary Compressed Files . |
doDiskSpaceLimiting |
Дополнительный логический атрибут. Указывает, существует ли ограничение для объема дискового пространства, которое может занять все сжатые файлы, хранящиеся в каталоге сжатия, указанном атрибутом каталога. Значение по умолчанию — true . |
dynamicCompressionBufferLimit |
Необязательный атрибут uint. Указывает максимальный объем динамически сжатых данных, которые службы IIS будут буферировать перед очисткой буфера клиенту. Это уменьшает объем памяти, необходимый для динамического сжатия. Заметка: Этот атрибут был добавлен в IIS 7.5. Значение по умолчанию — 65536 . |
dynamicCompressionDisableCpuUsage |
Необязательный атрибут uint. Указывает процент использования ЦП, при котором будет отключено динамическое сжатие. Заметка: Этот атрибут выступает в качестве верхнего предела ЦП, при котором отключается динамическое сжатие. Если использование ЦП ниже значения, указанного в атрибуте dynamicCompressionEnableCpuUsage , динамическое сжатие будет повторно включено. Значение по умолчанию — 90 . |
dynamicCompressionEnableCpuUsage |
Необязательный атрибут uint. Указывает процент использования ЦП, ниже которого будет включена динамическая сжатие. Значение должно быть от 0 до 100. Среднее использование ЦП вычисляется каждые 30 секунд. Заметка: Этот атрибут выступает в качестве нижнего предела ЦП, ниже которого включена динамическая сжатие. При повышении использования ЦП выше значения, указанного в атрибуте dynamicCompressionDisableCpuUsage , динамическое сжатие будет отключено. Значение по умолчанию — 50 . |
expiresHeader |
Необязательный строковый атрибут. Указывает содержимое заголовка HTTP Expires, отправляемого со всеми запрошенными сжатыми файлами, вместе с заголовком Cache-Control, указанным в атрибуте cacheControlHeader . Это сочетание заголовков гарантирует, что старые клиенты и прокси-серверы не пытаются кэшировать сжатые файлы. Чтобы включить этот параметр, необходимо задать для атрибута sendCacheHeadersзначение true. Перед тем как изменения этого свойства вступают в силу, необходимо перезапустить службу веб-публикации (WWW). Значение по умолчанию — Wed, 01 Jan 1997 12:00:00 GMT . |
maxDiskSpaceUsage |
Необязательный атрибут uint. Указывает количество мегабайт дискового пространства, которое сжатые файлы могут занимать в каталоге сжатия. Если пространство, используемое сжатыми файлами, превышает 90 процентов значения в этом атрибуте, СЛУЖБЫ IIS удаляет наименее недавно использованные файлы до достижения уровня использования 90 процентов. Заметка: В IIS 6.0 это ограничение было выражено в байтах; в IIS 7 он выражается в мегабайтах. В IIS 7 ограничение применяется для каждого пула приложений. Значение по умолчанию — 100 . |
minFileSizeForComp |
Необязательный атрибут uint. Указывает минимальное количество байтов, которое должен содержать файл, чтобы использовать сжатие по запросу. Значение по умолчанию для IIS 7.5 — для 2700 IIS 7.0 значение 256 по умолчанию. |
noCompressionForHttp10 |
Дополнительный логический атрибут. Указывает, отключается ли сжатие для запросов, содержащих номер версии HTTP 1.0. Заметка: Некоторые клиенты HTTP 1.0 не обрабатывают кэширование сжатых объектов правильно. Этот параметр можно использовать, чтобы избежать возврата сжатого файла клиенту, который не может распаковать его. Значение по умолчанию — true . |
noCompressionForProxies |
Дополнительный логический атрибут. Указывает, отключен ли ответ HTTP 1.1 для запросов на сжатие, поступающих через прокси-серверы. Заметка: Некоторые прокси-серверы HTTP не обрабатывают кэширование сжатых объектов правильно. Этот параметр можно использовать, чтобы избежать возврата сжатого файла на прокси-сервер, который не может распаковывать его. Значение по умолчанию — true . |
noCompressionForRange |
Дополнительный логический атрибут. Указывает, отключается ли сжатие для HTTP-запросов, включающих заголовок Range. Заметка: Некоторые клиенты не могут правильно обрабатывать запросы диапазона. Этот параметр можно использовать, чтобы избежать возврата сжатого файла клиенту, который не может распаковать его. Значение по умолчанию — true . |
sendCacheHeaders |
Дополнительный логический атрибут. Указывает, отправляются ли заголовки, настроенные в cacheControlHeader и истекает срок действияHeader с каждым сжатым ответом. Значение по умолчанию — false . |
staticCompressionDisableCpuUsage |
Необязательный атрибут uint. Указывает процент использования ЦП, при котором отключается статическое сжатие. Значение должно быть от 0 до 100. Среднее использование ЦП вычисляется каждые 30 секунд. Заметка: Это свойство выступает в качестве верхнего предела ЦП, при котором статическое сжатие отключается. Если использование ЦП снижается ниже значения, указанного в атрибуте staticCompressionEnableCpuUsage, то статическое сжатие будет повторно использоваться. Значение по умолчанию — 100 . |
staticCompressionEnableCpuUsage |
Необязательный атрибут uint. Указывает процент использования ЦП, при котором включена статическое сжатие. Значение должно быть от 0 до 100. Среднее использование ЦП вычисляется каждые 30 секунд. Заметка: Это свойство выступает в качестве нижнего предела ЦП, ниже которого включена статическое сжатие. При повышении использования ЦП выше значения, указанного в атрибуте staticCompressionDisableCpuUsage, статическая сжатие будет отключена. Значение по умолчанию — 50 . |
staticCompressionIgnoreHitFrequency |
Дополнительный логический атрибут. Если значение true, отключает поведение, которое статический файл сжимается, только если он попадает в определенное количество раз в течение определенного периода времени. В случаях, когда требуется сжатие статического содержимого для снижения использования пропускной способности, может возникнуть ситуация, когда требуется сжатие статического содержимого. Например, может потребоваться всегда сжимать статическое содержимое, если система использует подсистему балансировки нагрузки с кэшированием границ между веб-сервером и запрашивающим сервером, что приводит к кэшированию несжатого файла на пограничном сервере, так как последующие запросы не будут достигать веб-сервера. Если поведение не отключено, скорость попадания больше или равно двум попаданиям в 10 секунд приведет к сжатие статического содержимого. Меньшая скорость попадания приведет к тому, что содержимое не сжимается. Значение по умолчанию — False . |
Дочерние элементы
Элемент | Описание |
---|---|
scheme |
Необязательный элемент. Указывает схему сжатия (Gzip или Deflate) IIS, использующая для сжатия клиентских запросов. Этот элемент можно настроить только на уровне сервера. |
dynamicTypes |
Необязательный элемент. Задает параметры конфигурации для динамического сжатия. Для версий IIS до IIS 10.0 можно настроить только на уровне сервера. Для IIS 10.0 и более поздних версий можно также настроить на уровне сайта. |
staticTypes |
Необязательный элемент. Задает параметры конфигурации для статического сжатия. Для IIS 10.0 и более поздних версий можно настроить только на уровне сайта. Для версий IIS до IIS 10.0 можно настроить только на уровне сервера. Для IIS 10.0 и более поздних версий можно также настроить на уровне сайта. |
Пример конфигурации
Следующий элемент по умолчанию <httpCompression>
настраивается в файле ApplicationHost.config в IIS 7. Этот раздел конфигурации наследует параметры конфигурации по умолчанию, если этот элемент не используется <clear>
.
<httpCompression
directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/javascript" 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>
Пример кода
Следующие примеры кода добавляют типы MIME для документов Office 2003 в список динамических типов сжатия.
Примечание.
Документы Office 2007 используют встроенное сжатие, поэтому их не нужно сжимать службами IIS.
AppCmd.exe
appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/msword',enabled='True']" /commit:apphost
appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/vnd.ms-powerpoint',enabled='True']" /commit:apphost
appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/vnd.ms-excel',enabled='True']" /commit:apphost
Примечание.
При использовании AppCmd.exe для настройки этих параметров необходимо задать параметр apphost
фиксации. При этом параметры конфигурации фиксируются в соответствующем разделе расположения в файле ApplicationHost.config.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection httpCompressionSection = config.GetSection("system.webServer/httpCompression");
ConfigurationElementCollection dynamicTypesCollection = httpCompressionSection.GetCollection("dynamicTypes");
ConfigurationElement addElement = dynamicTypesCollection.CreateElement("add");
addElement["mimeType"] = @"application/msword";
addElement["enabled"] = true;
dynamicTypesCollection.Add(addElement);
ConfigurationElement addElement1 = dynamicTypesCollection.CreateElement("add");
addElement1["mimeType"] = @"application/vnd.ms-powerpoint";
addElement1["enabled"] = true;
dynamicTypesCollection.Add(addElement1);
ConfigurationElement addElement2 = dynamicTypesCollection.CreateElement("add");
addElement2["mimeType"] = @"application/vnd.ms-excel";
addElement2["enabled"] = true;
dynamicTypesCollection.Add(addElement2);
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim httpCompressionSection As ConfigurationSection = config.GetSection("system.webServer/httpCompression")
Dim dynamicTypesCollection As ConfigurationElementCollection = httpCompressionSection.GetCollection("dynamicTypes")
Dim addElement As ConfigurationElement = dynamicTypesCollection.CreateElement("add")
addElement("mimeType") = "application/msword"
addElement("enabled") = True
dynamicTypesCollection.Add(addElement)
Dim addElement1 As ConfigurationElement = dynamicTypesCollection.CreateElement("add")
addElement1("mimeType") = "application/vnd.ms-powerpoint"
addElement1("enabled") = True
dynamicTypesCollection.Add(addElement1)
Dim addElement2 As ConfigurationElement = dynamicTypesCollection.CreateElement("add")
addElement2("mimeType") = "application/vnd.ms-excel"
addElement2("enabled") = True
dynamicTypesCollection.Add(addElement2)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var httpCompressionSection = adminManager.GetAdminSection("system.webServer/httpCompression", "MACHINE/WEBROOT/APPHOST");
var dynamicTypesCollection = httpCompressionSection.ChildElements.Item("dynamicTypes").Collection;
var addElement = dynamicTypesCollection.CreateNewElement("add");
addElement.Properties.Item("mimeType").Value = "application/msword";
addElement.Properties.Item("enabled").Value = true;
dynamicTypesCollection.AddElement(addElement);
var addElement1 = dynamicTypesCollection.CreateNewElement("add");
addElement1.Properties.Item("mimeType").Value = "application/vnd.ms-powerpoint";
addElement1.Properties.Item("enabled").Value = true;
dynamicTypesCollection.AddElement(addElement1);
var addElement2 = dynamicTypesCollection.CreateNewElement("add");
addElement2.Properties.Item("mimeType").Value = "application/vnd.ms-excel";
addElement2.Properties.Item("enabled").Value = true;
dynamicTypesCollection.AddElement(addElement2);
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set httpCompressionSection = adminManager.GetAdminSection("system.webServer/httpCompression", "MACHINE/WEBROOT/APPHOST")
Set dynamicTypesCollection = httpCompressionSection.ChildElements.Item("dynamicTypes").Collection
Set addElement = dynamicTypesCollection.CreateNewElement("add")
addElement.Properties.Item("mimeType").Value = "application/msword"
addElement.Properties.Item("enabled").Value = True
dynamicTypesCollection.AddElement(addElement)
Set addElement1 = dynamicTypesCollection.CreateNewElement("add")
addElement1.Properties.Item("mimeType").Value = "application/vnd.ms-powerpoint"
addElement1.Properties.Item("enabled").Value = True
dynamicTypesCollection.AddElement(addElement1)
Set addElement2 = dynamicTypesCollection.CreateNewElement("add")
addElement2.Properties.Item("mimeType").Value = "application/vnd.ms-excel"
addElement2.Properties.Item("enabled").Value = True
dynamicTypesCollection.AddElement(addElement2)
adminManager.CommitChanges()
Следующие примеры кода добавляют типы MIME для документов Office 2003 в список статических типов сжатия.
( [> ! ПРИМЕЧАНИЕ]
Документы Office 2007 используют встроенное сжатие, поэтому их не нужно сжимать iis.)
AppCmd.exe
appcmd.exe set config -section:system.webServer/httpCompression /+"staticTypes.[mimeType='application/msword',enabled='True']" /commit:apphost
appcmd.exe set config -section:system.webServer/httpCompression /+"staticTypes.[mimeType='application/vnd.ms-powerpoint',enabled='True']" /commit:apphost
appcmd.exe set config -section:system.webServer/httpCompression /+"staticTypes.[mimeType='application/vnd.ms-excel',enabled='True']" /commit:apphost
Примечание.
При использовании AppCmd.exe для настройки этих параметров необходимо задать параметр apphost
фиксации. При этом параметры конфигурации фиксируются в соответствующем разделе расположения в файле ApplicationHost.config.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection httpCompressionSection = config.GetSection("system.webServer/httpCompression");
ConfigurationElementCollection staticTypesCollection = httpCompressionSection.GetCollection("staticTypes");
ConfigurationElement addElement = staticTypesCollection.CreateElement("add");
addElement["mimeType"] = @"application/msword";
addElement["enabled"] = true;
staticTypesCollection.Add(addElement);
ConfigurationElement addElement1 = staticTypesCollection.CreateElement("add");
addElement1["mimeType"] = @"application/vnd.ms-powerpoint";
addElement1["enabled"] = true;
staticTypesCollection.Add(addElement1);
ConfigurationElement addElement2 = staticTypesCollection.CreateElement("add");
addElement2["mimeType"] = @"application/vnd.ms-excel";
addElement2["enabled"] = true;
staticTypesCollection.Add(addElement2);
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim httpCompressionSection As ConfigurationSection = config.GetSection("system.webServer/httpCompression")
Dim staticTypesCollection As ConfigurationElementCollection = httpCompressionSection.GetCollection("staticTypes")
Dim addElement As ConfigurationElement = staticTypesCollection.CreateElement("add")
addElement("mimeType") = "application/msword"
addElement("enabled") = True
staticTypesCollection.Add(addElement)
Dim addElement1 As ConfigurationElement = staticTypesCollection.CreateElement("add")
addElement1("mimeType") = "application/vnd.ms-powerpoint"
addElement1("enabled") = True
staticTypesCollection.Add(addElement1)
Dim addElement2 As ConfigurationElement = staticTypesCollection.CreateElement("add")
addElement2("mimeType") = "application/vnd.ms-excel"
addElement2("enabled") = True
staticTypesCollection.Add(addElement2)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var httpCompressionSection = adminManager.GetAdminSection("system.webServer/httpCompression", "MACHINE/WEBROOT/APPHOST");
var staticTypesCollection = httpCompressionSection.ChildElements.Item("staticTypes").Collection;
var addElement = staticTypesCollection.CreateNewElement("add");
addElement.Properties.Item("mimeType").Value = "application/msword";
addElement.Properties.Item("enabled").Value = true;
staticTypesCollection.AddElement(addElement);
var addElement1 = staticTypesCollection.CreateNewElement("add");
addElement1.Properties.Item("mimeType").Value = "application/vnd.ms-powerpoint";
addElement1.Properties.Item("enabled").Value = true;
staticTypesCollection.AddElement(addElement1);
var addElement2 = staticTypesCollection.CreateNewElement("add");
addElement2.Properties.Item("mimeType").Value = "application/vnd.ms-excel";
addElement2.Properties.Item("enabled").Value = true;
staticTypesCollection.AddElement(addElement2);
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set httpCompressionSection = adminManager.GetAdminSection("system.webServer/httpCompression", "MACHINE/WEBROOT/APPHOST")
Set staticTypesCollection = httpCompressionSection.ChildElements.Item("staticTypes").Collection
Set addElement = staticTypesCollection.CreateNewElement("add")
addElement.Properties.Item("mimeType").Value = "application/msword"
addElement.Properties.Item("enabled").Value = True
staticTypesCollection.AddElement(addElement)
Set addElement1 = staticTypesCollection.CreateNewElement("add")
addElement1.Properties.Item("mimeType").Value = "application/vnd.ms-powerpoint"
addElement1.Properties.Item("enabled").Value = True
staticTypesCollection.AddElement(addElement1)
Set addElement2 = staticTypesCollection.CreateNewElement("add")
addElement2.Properties.Item("mimeType").Value = "application/vnd.ms-excel"
addElement2.Properties.Item("enabled").Value = True
staticTypesCollection.AddElement(addElement2)
adminManager.CommitChanges()