Добавление профилей <кэширования>
Общие сведения
Элемент <add>
<profiles>
элемента добавляет профиль кэширования выходных данных в коллекцию профилей кэширования выходных данных.
Совместимость
Версия | Примечания |
---|---|
IIS 10.0 | Элемент <add> не был изменен в IIS 10.0. |
IIS 8,5 | Элемент <add> не был изменен в IIS 8.5. |
IIS 8,0 | Элемент <add> не был изменен в IIS 8.0. |
IIS 7,5 | Элемент <add> не был изменен в IIS 7.5. |
IIS 7.0 | Элемент <add> элемента появился <profiles> в IIS 7.0. |
IIS 6,0 | Н/Д |
Настройка
Элемент <add>
<profiles>
элемента включен в установку IIS 7 по умолчанию.
Инструкции
Настройка кэширования выходных данных страниц
Откройте диспетчер служб 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.
В области Подключения перейдите к подключению, сайту, приложению или каталогу, для которого требуется настроить кэширование выходных данных страниц.
На панели Главная прокрутите страницу до пункта Кэширование выходных данных, а затем дважды щелкните Кэширование выходных данных.
В области Действия нажмите кнопку Добавить...
В диалоговом окне Добавление правила кэша введите расширение имени файла, которое требуется кэшировать, в поле Расширение имени файла , а затем выберите параметр Кэширование в пользовательском режиме , кэширование в режиме ядра или и то, и другое.
Выберите параметры, которые нужно использовать для кэширования, и нажмите кнопку ОК.
Конфигурация
Атрибуты
Атрибут | Описание | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
duration |
Необязательный атрибут timeSpan. Указывает время кэширования страницы или пользовательского элемента управления (в секундах). Значение по умолчанию — 00:00:30 . |
||||||||||||||
extension |
Обязательный строковый атрибут. Указывает расширение имени файла для файлов, которые требуется кэшировать. |
||||||||||||||
kernelCachePolicy |
Необязательный атрибут перечисления. Настраивает политику кэширования ядра. Атрибут kernelCachePolicy может иметь одно из следующих значений. Значение по умолчанию — DontCache .
|
||||||||||||||
location |
Необязательный атрибут перечисления. Указывает допустимые значения для управления расположением кэшируемого вывода ответа HTTP для ресурса. Атрибут location может быть одним из следующих возможных значений. Значение по умолчанию — Server .
|
||||||||||||||
policy |
Необязательный атрибут перечисления. Настраивает политику кэширования выходных данных. Атрибут политики может быть одним из следующих возможных значений. Значение по умолчанию — DontCache .
|
||||||||||||||
varyByHeaders |
Необязательный строковый атрибут. Указывает разделенный точкой с запятой список заголовков HTTP, используемых для изменения выходного кэша. Если для этого атрибута задано несколько заголовков, выходной кэш содержит разные версии запрошенного документа для каждой комбинации указанных заголовков. |
||||||||||||||
varyByQueryString |
Необязательный строковый атрибут. Указывает разделенный точкой с запятой список строк, используемых для изменения выходного кэша. По умолчанию эти строки соответствуют значению строки запроса, отправленному с атрибутами метода GET , или параметру, отправленному с помощью метода POST . Если для этого атрибута задано несколько параметров, выходной кэш содержит разные версии запрошенного документа для каждой комбинации указанных параметров. Возможные значения: none, звездочка (*) и любая допустимая строка запроса или имя параметра POST . |
Дочерние элементы
Отсутствует.
Образец конфигурации
В следующем примере конфигурации включается кэширование в пользовательском режиме и кэширование в режиме ядра, которые включены по умолчанию в IIS 7.0. Он также использует элемент, <add>
содержащийся в элементе <profiles>
, для включения кэширования выходных данных для файлов с расширением ASP-имени. Он также использует атрибут политики для вывода кэша страницы до тех пор, пока она не изменится; Он делает то же самое для кэширования ядра с помощью атрибута kernelCachePolicy .
<configuration>
<system.webServer>
<caching enabled="true" enableKernelCache="true">
<profiles>
<add extension=".asp" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
</profiles>
</caching>
</system.webServer>
</configuration>
В следующем примере кода устанавливается максимальный размер выходного кэша в 1 гигабайт, а максимальный размер ответа, который может храниться в выходном кэше, составляет 512 килобайт.
<configuration>
<system.webServer>
<caching enabled="true" enableKernelCache="true" maxCacheSize="1000" maxResponseSize="512000"/>
</system.webServer>
</configuration>
Пример кода
В следующих примерах настраивается кэширование выходных данных страницы для файлов с расширением ASP и настройка IIS для кэширования в пользовательском режиме и режиме ядра до тех пор, пока asp-файлы не изменятся.
AppCmd.exe
appcmd.exe set config -section:system.webServer/caching /+"profiles.[extension='asp',policy='CacheUntilChange',kernelCachePolicy='CacheUntilChange']" /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 cachingSection = config.GetSection("system.webServer/caching");
ConfigurationElementCollection profilesCollection = cachingSection.GetCollection("profiles");
ConfigurationElement addElement = profilesCollection.CreateElement("add");
addElement["extension"] = @"asp";
addElement["policy"] = @"CacheUntilChange";
addElement["kernelCachePolicy"] = @"CacheUntilChange";
profilesCollection.AddAt(0, addElement);
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 cachingSection As ConfigurationSection = config.GetSection("system.webServer/caching")
Dim profilesCollection As ConfigurationElementCollection = cachingSection.GetCollection("profiles")
Dim addElement As ConfigurationElement = profilesCollection.CreateElement("add")
addElement("extension") = "asp"
addElement("policy") = "CacheUntilChange"
addElement("kernelCachePolicy") = "CacheUntilChange"
profilesCollection.AddAt(0, addElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var cachingSection = adminManager.GetAdminSection("system.webServer/caching", "MACHINE/WEBROOT/APPHOST");
var profilesCollection = cachingSection.ChildElements.Item("profiles").Collection;
var addElement = profilesCollection.CreateNewElement("add");
addElement.Properties.Item("extension").Value = "asp";
addElement.Properties.Item("policy").Value = "CacheUntilChange";
addElement.Properties.Item("kernelCachePolicy").Value = "CacheUntilChange";
profilesCollection.AddElement(addElement, 0);
adminManager.CommitChanges();
VBScript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set cachingSection = adminManager.GetAdminSection("system.webServer/caching", "MACHINE/WEBROOT/APPHOST")
Set profilesCollection = cachingSection.ChildElements.Item("profiles").Collection
Set addElement = profilesCollection.CreateNewElement("add")
addElement.Properties.Item("extension").Value = "asp"
addElement.Properties.Item("policy").Value = "CacheUntilChange"
addElement.Properties.Item("kernelCachePolicy").Value = "CacheUntilChange"
profilesCollection.AddElement addElement, 0
adminManager.CommitChanges()
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по