Como Adicionar Perfis de Cache <add>
Visão geral
O elemento <add>
do elemento <profiles>
adiciona um perfil de cache de saída à coleção de perfis de cache de saída.
Compatibilidade
Versão | Observações |
---|---|
IIS 10.0 | O elemento <add> não foi modificado no IIS 10.0. |
IIS 8.5 | O elemento <add> não foi modificado no IIS 8.5. |
IIS 8.0 | O elemento <add> não foi modificado no IIS 8.0. |
IIS 7.5 | O elemento <add> não foi modificado no IIS 7.5. |
IIS 7.0 | O elemento <add> do elemento <profiles> foi introduzido no IIS 7.0. |
IIS 6,0 | N/D |
Instalação
O elemento <add>
do elemento <profiles>
está incluído na instalação padrão do IIS 7.
Instruções
Como configurar o cache de saída de página
Abra o Gerenciador do IIS (Serviços de Informações da Internet):
Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador do IIS (Serviços de Informações da Internet).
Se você estiver usando o Windows 8 ou Windows 8.1:
- Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
- Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador do IIS (Serviços de Informações da Internet).
Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:
- Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do IIS (Serviços de Informações da Internet).
Se você estiver usando o Windows Vista ou Windows 7:
- Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
- Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador do IIS (Serviços de Informações da Internet).
No painel Conexões, acesse a conexão, o site, o aplicativo ou o diretório para o qual você deseja configurar o cache de saída da página.
No painel Página Inicial, role até Cache de Saída e clique duas vezes em Cache de Saída.
No painel Ações, clique em Adicionar.
Na caixa de diálogo Adicionar Regra de Cache, digite a extensão de nome de arquivo que você deseja armazenar em cache na caixa Extensão de nome de arquivo e selecione a opção Cache no modo de usuário, a opção Cache no modo kernel, ou ambas.
Selecione as opções que deseja usar para cache e clique em OK.
Configuração
Atributos
Atributo | Descrição | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
duration |
Atributo timeSpan opcional. Especifica o tempo (em segundos) em que a página ou o controle do usuário é armazenado em cache O padrão é 00:00:30 . |
||||||||||||||
extension |
Atributo de cadeia de caracteres obrigatório. Especifica a extensão de nome de arquivo para os arquivos que você deseja armazenar em cache. |
||||||||||||||
kernelCachePolicy |
Atributo de enumeração opcional. Configura a política de cache do kernel. O atributo kernelCachePolicy pode ser um dos seguintes valores. O padrão é DontCache .
|
||||||||||||||
location |
Atributo de enumeração opcional. Especifica os valores válidos para controlar o local da resposta HTTP armazenada em cache de saída de um recurso. O atributo location pode ser um dos valores possíveis a seguir. O padrão é Server .
|
||||||||||||||
policy |
Atributo de enumeração opcional. Configura a política de cache de saída. O atributo policy pode ser um dos valores possíveis a seguir. O padrão é DontCache .
|
||||||||||||||
varyByHeaders |
Atributo de cadeia de caracteres opcional. Especifica uma lista separada por ponto e vírgula de cabeçalhos HTTP usados para variar o cache de saída. Quando esse atributo é definido com vários cabeçalhos, o cache de saída contém uma versão diferente do documento solicitado para cada combinação de cabeçalhos especificados. |
||||||||||||||
varyByQueryString |
Atributo de cadeia de caracteres opcional. Especifica uma lista separada por ponto-e-vírgula de cadeias de caracteres usadas para variar o cache de saída. Por padrão, essas cadeias de caracteres correspondem a um valor de cadeia de consulta enviado com os atributos de método GET ou para um parâmetro enviado usando o método POST. Quando esse atributo é definido com vários parâmetros, o cache de saída contém uma versão diferente do documento solicitado para cada combinação de parâmetros especificados. Os valores possíveis incluem none, um asterisco (*) e qualquer cadeia de consulta válida ou o nome do parâmetro de POST. |
Elementos filho
Nenhum.
Exemplo de configuração
O exemplo de configuração a seguir habilita o cache no modo de usuário e o cache no modo kernel, ambos habilitados por padrão no IIS 7.0. Ele também usa o elemento <add>
contido pelo elemento <profiles>
para habilitar o cache de saída para arquivos com a extensão de nome de arquivo .asp. Ele também usa o atributo policy para armazenar em cache a página até que ela seja alterada; ele faz o mesmo para o cache de kernel usando o atributo kernelCachePolicy.
<configuration>
<system.webServer>
<caching enabled="true" enableKernelCache="true">
<profiles>
<add extension=".asp" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
</profiles>
</caching>
</system.webServer>
</configuration>
O exemplo de código a seguir define o tamanho máximo do cache de saída como 1 gigabyte e define o tamanho máximo de uma resposta que pode ser armazenada no cache de saída como 512 quilobytes.
<configuration>
<system.webServer>
<caching enabled="true" enableKernelCache="true" maxCacheSize="1000" maxResponseSize="512000"/>
</system.webServer>
</configuration>
Exemplo de código
Os exemplos a seguir configuram o cache de saída de página para arquivos com a extensão de nome de arquivo .asp e configuram o IIS para armazenar em cache no modo de usuário e no modo kernel até que os arquivos ASP sejam alterados.
AppCmd.exe
appcmd.exe set config -section:system.webServer/caching /+"profiles.[extension='asp',policy='CacheUntilChange',kernelCachePolicy='CacheUntilChange']" /commit:apphost
Observação
Defina o parâmetro commit para apphost
quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo 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()