Compartilhar via


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

  1. 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).
  2. 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.

  3. No painel Página Inicial, role até Cache de Saída e clique duas vezes em Cache de Saída.
    Screenshot of the Home pane with the Output Caching icon being highlighted.

  4. No painel Ações, clique em Adicionar.

  5. 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.

  6. Selecione as opções que deseja usar para cache e clique em OK.
    Screenshot of the Add Cache Rule dialog box, showing the File name extension field.

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.
Valor Descrição
DontCache O conteúdo não é armazenado em cache.

O valor numérico é 0.
CacheUntilChange O conteúdo só será armazenado em cache até que ele seja alterado.

O valor numérico é 1.
CacheForTimePeriod O conteúdo é armazenado em cache pelo período especificado pelo atributo duration.

O valor numérico é 2.
DisableCache O cache está desabilitado e nenhum armazenamento em cache ocorrerá.

O valor numérico é 3.
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.
Valor Descrição
Any O cache de saída pode estar localizado no cliente de navegador (de deu origem à solicitação), em um servidor proxy (ou em outro servidor) que participou da solicitação ou no servidor em que a solicitação foi processada.

O valor numérico é 0.
Client O cache de saída está localizado no cliente de navegador que deu origem à solicitação.

O valor numérico é 1.
Downstream O cache de saída pode ser armazenado em qualquer dispositivo com capacidade de cache HTTP 1.1 diferente do servidor de origem. Isso inclui os servidores proxy e o cliente que fez a solicitação.

O valor numérico é 2.
Server O cache de saída está localizado no servidor Web em que a solicitação foi processada.

O valor numérico é 3.
None O cache de saída está desabilitado para a página solicitada.

O valor numérico é 4.
ServerAndClient O cache de saída pode ser armazenado somente no servidor de origem ou no cliente solicitante. Servidores proxy não têm permissão para armazenar a resposta em cache.

O valor numérico é 5.
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.
Valor Descrição
DontCache O conteúdo não é armazenado em cache.

O valor numérico é 0.
CacheUntilChange O conteúdo só será armazenado em cache até que ele seja alterado.

O valor numérico é 1.
CacheForTimePeriod O conteúdo é armazenado em cache pelo período especificado pelo atributo duration.

O valor numérico é 2.
DisableCache O cache está desabilitado e nenhum armazenamento em cache ocorrerá.

O valor numérico é 3.
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()