Http Compression <httpCompression>
Общие сведения
Элемент <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 — эта форма сжатия описана в спецификации RFC 1951.
- GZIP (ZIP-файл GNU) — эта форма сжатия описана в спецификации 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.
- Разверните узел Службы IIS, Веб-службы, Функции производительности, а затем выберите Динамическое сжатие содержимого и (или) Сжатие статического содержимого.
- Нажмите кнопку ОК.
- Щелкните Закрыть.
Windows Server 2008 или Windows Server 2008 R2
- На панели задач нажмите кнопку Пуск, наведите указатель мыши на пункт Администрирование, а затем щелкните диспетчер сервера.
- В области иерархии диспетчер сервера разверните узел Роли, а затем щелкните Веб-сервер (IIS) .
- В области Веб-сервер (IIS) прокрутите страницу до раздела Службы ролей и щелкните Добавить службы ролей.
- На странице Выбор служб ролеймастера добавления служб ролей выберите Динамическоесжатие содержимого , если требуется установить динамическое сжатие, и Сжатие статического содержимого , если требуется установить статическое сжатие, а затем нажмите кнопку Далее.
- На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
- На странице Результаты нажмите кнопку Закрыть.
Windows Vista или Windows 7
- На панели задач нажмите кнопку Пуск, а затем выберите пункт панель управления.
- В панель управления щелкните Программы и компоненты, а затем — Включить или отключить компоненты Windows.
- Разверните узел Службы IIS, Затем — Службы Интернета, а затем Функции производительности.
- Выберите Http Compression Dynamic (Динамическое сжатие HTTP), если требуется установить динамическое сжатие, и Статическое сжатие содержимого , если вы хотите установить статическое сжатие.
- Нажмите кнопку ОК.
Инструкции
Включение или отключение статического и динамического сжатия для сайта или приложения
Откройте диспетчер служб 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 Temporary Compressed Files. Значение по умолчанию — %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 и expiresHeader с каждым сжатым ответом. Значение по умолчанию — false . |
staticCompressionDisableCpuUsage |
Необязательный атрибут uint. Указывает процент использования ЦП, при котором отключается статическое сжатие. Значение должно находиться в диапазоне от 0 до 100. Средняя загрузка ЦП рассчитывается каждые 30 секунд. Примечание: Это свойство выступает в качестве верхнего предела ЦП, при котором отключается статическое сжатие. Если загрузка ЦП падает ниже значения, указанного в атрибуте staticCompressionEnableCpuUsage , статическое сжатие будет повторно включаемым. Значение по умолчанию — 100 . |
staticCompressionEnableCpuUsage |
Необязательный атрибут uint. Указывает процент использования ЦП, при котором включено статическое сжатие. Значение должно находиться в диапазоне от 0 до 100. Средняя загрузка ЦП рассчитывается каждые 30 секунд. Примечание: Это свойство выступает в качестве нижнего предела ЦП, ниже которого включено статическое сжатие. Если загрузка ЦП превышает значение, указанное в атрибуте staticCompressionDisableCpuUsage , статическое сжатие будет отключено. Значение по умолчанию — 50 . |
staticCompressionIgnoreHitFrequency |
Дополнительный логический атрибут. Если задано значение True, отключает режим сжатия статического файла, только если он попадает в определенное количество раз в течение определенного периода времени. Вы можете столкнуться с обстоятельствами, в которых требуется всегда сжимать статическое содержимое для снижения использования пропускной способности. Например, может потребоваться всегда сжимать статическое содержимое, если система использует подсистему балансировки нагрузки с пограничным кэшированием между веб-сервером и инициатором запроса, что приводит к кэшированию несжатого файла на пограничном сервере, так как последующие запросы не доходят до веб-сервера. Если поведение не отключено, скорость попаданий, превышающая или равная двум попаданиям в 10 секунд, приведет к сжатию статического содержимого. Меньшая частота попаданий приведет к тому, что содержимое не сжимается. Значение по умолчанию — False . |
Дочерние элементы
Элемент | Описание |
---|---|
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()
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по