HttpCompression для сжатия <HTTP>
Обзор
Элемент <httpCompression>
задает параметры сжатия HTTP для службы IIS (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 (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), разверните веб-сервер, разверните узел Производительность, а затем выберите сжатие статического содержимого и (или) динамическое сжатие содержимого. Нажмите кнопку Далее.
. - На странице Выбор функций (Select features) нажмите кнопку Далее.
- На странице Подтверждение выбранных элементов для установки щелкните Установить.
- На странице Результаты нажмите кнопку Закрыть.
Windows 8 или Windows 8.1
- На начальном экране переместите указатель на левый нижний угол, щелкните правой кнопкой "Пуск" и щелкните панель управления.
- В панель управления щелкните "Программы и компоненты", а затем выберите "Включить или отключить функции Windows".
- Разверните службы IIS, разверните веб-службы World Wide, разверните функции производительности, а затем выберите динамическое сжатие содержимого и (или) сжатие статического содержимого.
- Щелкните OK.
- Нажмите кнопку Закрыть.
Windows Server 2008 или Windows Server 2008 R2
- На панели задач нажмите кнопку "Пуск", наведите указатель на администрирование и щелкните диспетчер сервера.
- В области иерархии диспетчер сервера разверните узел "Роли" и выберите веб-сервер (IIS).
- В области веб-сервера (IIS) прокрутите страницу до раздела "Службы ролей" и нажмите кнопку "Добавить службы ролей".
- На странице "Выбор служб ролей" мастера добавления служб ролей выберите динамическое сжатие содержимого, если требуется установить динамическое сжатие и сжатие статического содержимого, если требуется установить статическое сжатие, а затем нажмите кнопку "Далее".
- На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
- На странице Результаты нажмите кнопку Закрыть.
Windows Vista или Windows 7
- На панели задач нажмите кнопку "Пуск" и щелкните панель управления.
- В панель управления щелкните "Программы и компоненты", а затем нажмите кнопку "Включить или отключить компоненты Windows".
- Разверните службы IIS, а затем веб-службы World Wide, а затем функции производительности.
- Если вы хотите установить динамическое сжатие и сжатие статического содержимого, выберите "Динамический сжатие HTTP", если требуется установить статическое сжатие.
- Щелкните OK.
Инструкции
Включение или отключение статического и динамического сжатия для сайта или приложения
Откройте диспетчер службы IIS (IIS):
Если вы используете Windows Server 2012 или Windows Server 2012 R2:
- На панели задач щелкните диспетчер сервера, щелкните "Сервис" и щелкните диспетчер службы IIS (IIS).
Если вы используете Windows 8 или Windows 8.1:
- Удерживайте клавишу Windows, нажимайте букву X и щелкните панель управления.
- Щелкните "Администрирование" и дважды щелкните диспетчер службы IIS (IIS).
Если вы используете Windows Server 2008 или Windows Server 2008 R2:
- На панели задач нажмите кнопку "Пуск", наведите указатель на администрирование и щелкните диспетчер службы IIS (IIS).
Если вы используете Windows Vista или Windows 7:
- На панели задач нажмите кнопку "Пуск" и щелкните панель управления.
- Дважды щелкните "Администрирование" и дважды щелкните диспетчер службы IIS (IIS).
В области "Подключения" перейдите к подключению, сайту, приложению или каталогу, для которого требуется включить сжатие.
В области сжатия установите флажки, чтобы включить статическое или динамическое сжатие, или удалить флажки, чтобы отключить статическое или динамическое сжатие.
Завершив описанные выше действия, нажмите кнопку "Применить " на панели "Действия ".
Включение или отключение статического и динамического сжатия для сервера
Откройте диспетчер службы IIS (IIS):
Если вы используете Windows Server 2012 или Windows Server 2012 R2:
- На панели задач щелкните диспетчер сервера, щелкните "Сервис" и щелкните диспетчер службы IIS (IIS).
Если вы используете Windows 8 или Windows 8.1:
- Удерживайте клавишу Windows, нажимайте букву X и щелкните панель управления.
- Щелкните "Администрирование" и дважды щелкните диспетчер службы IIS (IIS).
Если вы используете Windows Server 2008 или Windows Server 2008 R2:
- На панели задач нажмите кнопку "Пуск", наведите указатель на администрирование и щелкните диспетчер службы IIS (IIS).
Если вы используете Windows Vista или Windows 7:
- На панели задач нажмите кнопку "Пуск" и щелкните панель управления.
- Дважды щелкните "Администрирование" и дважды щелкните диспетчер службы IIS (IIS).
В области "Подключения" выделите имя сервера.
В области сжатия установите флажки, чтобы включить статическое или динамическое сжатие, или удалить флажки, чтобы отключить статическое или динамическое сжатие.
Завершив описанные выше действия, нажмите кнопку "Применить " на панели "Действия ".
Настройка staticCompressionIgnoreHitFrequency
Откройте диспетчер службы IIS (IIS):
Если вы используете Windows Server 2012 R2:
- На панели задач щелкните диспетчер сервера, щелкните "Сервис" и щелкните диспетчер службы IIS (IIS).
Если вы используете Windows 8.1:
- Удерживайте клавишу Windows, нажимайте букву X и щелкните панель управления.
- Щелкните "Администрирование" и дважды щелкните диспетчер службы IIS (IIS).
В области "Подключения" выберите сервер и дважды щелкните редактор конфигурации.
В редакторе конфигурации в разделе выберите system.webServer и выберите httpCompression.
Для staticCompressionIgnoreHitFrequency введите
True
, чтобы отключить поведение, которое сжимается статический файл, только если он попадает в определенное количество раз за определенный период времени или введитеFalse
, чтобы включить поведение.
В области Действия нажмите кнопку Применить.
Настройка
Атрибуты
Атрибут | Description |
---|---|
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 . |
Дочерние элементы
Элемент | Description |
---|---|
scheme |
Необязательный элемент. Указывает схему сжатия (Gzip или Deflate) IIS, использующая для сжатия клиентских запросов. |
dynamicTypes |
Необязательный элемент. Задает параметры конфигурации для динамического сжатия. |
staticTypes |
Необязательный элемент. Задает параметры конфигурации для статического сжатия. |
Образец конфигурации
Следующий элемент по умолчанию <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()