Compartir a través de


Adición de perfiles de almacenamiento en caché <add>

Información general

El elemento <add> del elemento <profiles> agrega un perfil de almacenamiento en caché de resultados a la colección de perfiles de este tipo.

Compatibilidad

Versión Notas
IIS 10.0 El elemento <add> no se modificó en IIS 10.0.
IIS 8.5 El elemento <add> no se modificó en IIS 8.5.
IIS 8.0 El elemento <add> no se modificó en IIS 8.0.
IIS 7.5 El elemento <add> no se modificó en IIS 7.5.
IIS 7.0 El elemento <add> del elemento <profiles> se introdujo en IIS 7.0.
IIS 6,0 N/D

Configuración

El elemento <add> del elemento <profiles> se incluye en la instalación predeterminada de IIS 7.

Procedimientos

Cómo configurar el almacenamiento en caché de resultados de página

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • Haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, vaya a la conexión, el sitio, la aplicación o el directorio para el que quiere configurar el almacenamiento en caché de resultados de página.

  3. En el panel Inicio, desplácese hasta Almacenamiento en caché de resultados y, a continuación, haga doble clic en Almacenamiento en caché de resultados.
    Screenshot of the Home pane with the Output Caching icon being highlighted.

  4. En el panel Acciones, haga clic en Agregar....

  5. En el cuadro de diálogo Agregar regla de caché, escriba la extensión de nombre de archivo que quiere almacenar en caché en el cuadro Extensión de nombre de archivo y, a continuación, seleccione la opción Almacenamiento en caché en modo usuario, la opción Almacenamiento en caché en modo kernel o ambas.

  6. Seleccione las opciones que quiera usar para el almacenamiento en caché y, a continuación, haga clic en Aceptar.
    Screenshot of the Add Cache Rule dialog box, showing the File name extension field.

Configuración

Atributos

Atributo Descripción
duration Atributo timeSpan opcional.

Especifica el tiempo (en segundos) que la página o el control de usuario se almacena en caché.

El valor predeterminado es 00:00:30.
extension Atributo de cadena necesario.

Especifica la extensión de nombre de archivo para los archivos que quiere almacenar en caché.
kernelCachePolicy Atributo enum opcional.

Configura la directiva de almacenamiento en caché del kernel.

El atributo kernelCachePolicy puede tener uno de los valores siguientes. El valor predeterminado es DontCache.
Valor Descripción
DontCache El contenido no se almacena en caché.

El valor numérico es 0.
CacheUntilChange El contenido solo se almacena en caché hasta que cambia.

El valor numérico es 1.
CacheForTimePeriod El contenido se almacena en caché durante el tiempo especificado por el atributo duration.

El valor numérico es 2.
DisableCache La memoria caché está deshabilitada y no se almacenará en caché.

El valor numérico es 3.
location Atributo enum opcional.

Especifica los valores válidos para controlar la ubicación de la respuesta HTTP, cuyo resultado se almacena en caché, para un recurso.

El atributo location puede tener uno de los siguientes valores posibles. El valor predeterminado es Server.
Valor Descripción
Any La memoria caché de resultados puede estar ubicada en el cliente de explorador (donde se originó la solicitud), en un servidor proxy (o cualquier otro servidor) que participe en la solicitud o en el servidor donde se procesó la solicitud.

El valor numérico es 0.
Client La memoria caché de resultados se encuentra en el cliente de explorador donde se originó la solicitud.

El valor numérico es 1.
Downstream La memoria caché de resultados se puede almacenar en cualquier dispositivo compatible con cachés HTTP 1.1 que sea distinto del servidor de origen. Entre ellos, se incluyen los servidores proxy y el cliente que realizó la solicitud.

El valor numérico es 2.
Server La memoria caché de resultados se encuentra en el servidor web donde se procesó la solicitud.

El valor numérico es 3.
None La memoria caché de resultados está deshabilitada para la página solicitada.

El valor numérico es 4.
ServerAndClient La memoria caché de resultados se puede almacenar solo en el servidor de origen o en el cliente que realiza la solicitud. No está permitido que los servidores proxy almacenen la respuesta en la memoria caché.

El valor numérico es 5.
policy Atributo enum opcional.

Configura la directiva de almacenamiento en caché de resultados.

El atributo policy puede tener uno de los siguientes valores posibles. El valor predeterminado es DontCache.
Valor Descripción
DontCache El contenido no se almacena en caché.

El valor numérico es 0.
CacheUntilChange El contenido solo se almacena en caché hasta que cambia.

El valor numérico es 1.
CacheForTimePeriod El contenido se almacena en caché durante el tiempo especificado por el atributo duration.

El valor numérico es 2.
DisableCache La memoria caché está deshabilitada y no se almacenará en caché.

El valor numérico es 3.
varyByHeaders Atributo de cadena opcional.

Especifica una lista de los encabezados HTTP que se usan para variar la memoria caché de resultados, separados por punto y coma. Cuando este atributo se establece en varios encabezados, la memoria caché de resultados contiene una versión diferente del documento solicitado para cada combinación de encabezados especificados.
varyByQueryString Atributo de cadena opcional.

Especifica una lista de las cadenas que se usan para variar la memoria caché de resultados, separadas por punto y coma. De forma predeterminada, estas cadenas corresponden a un valor de cadena de consulta enviado con atributos del método GET o a un parámetro enviado con el método POST. Cuando este atributo se establece en varios parámetros, la caché de resultados contiene una versión diferente del documento solicitado para cada combinación de parámetros especificados. Entre los valores posibles se incluyen none, asterisco (*) y cualquier cadena de consulta o nombre de parámetro POST válidos.

Elementos secundarios

Ninguno.

Ejemplo de configuración

En el ejemplo de configuración siguiente se habilita el almacenamiento en caché en modo de usuario y el almacenamiento en caché en modo kernel, ambos habilitados de forma predeterminada en IIS 7.0. También se usa el elemento <add> contenido en el elemento <profiles> para habilitar el almacenamiento en caché de resultados para los archivos con la extensión de nombre de archivo .asp. También usa el atributo policy para almacenar la página en la memoria caché de resultados hasta que cambie; hace lo mismo para el almacenamiento en caché del kernel con el atributo kernelCachePolicy.

<configuration>
   <system.webServer>
      <caching enabled="true" enableKernelCache="true">
         <profiles>
            <add extension=".asp" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
         </profiles>
      </caching>
   </system.webServer>
</configuration>

En el ejemplo de código siguiente se establece el tamaño máximo de la memoria caché de resultados en 1 gigabyte y el tamaño máximo de respuesta que se puede almacenar en la memoria caché de resultados en 512 kilobytes.

<configuration>
   <system.webServer>
      <caching enabled="true" enableKernelCache="true" maxCacheSize="1000" maxResponseSize="512000"/>
   </system.webServer>
</configuration>

Código de ejemplo

En los ejemplos siguientes se configura el almacenamiento en caché de resultados de página para archivos con la extensión de nombre de archivo .asp y se configura IIS para almacenar en caché en modo de usuario y modo kernel hasta que cambien los archivos ASP.

AppCmd.exe

appcmd.exe set config -section:system.webServer/caching /+"profiles.[extension='asp',policy='CacheUntilChange',kernelCachePolicy='CacheUntilChange']" /commit:apphost

Nota:

Debe asegurarse de establecer el parámetro de confirmación en apphost cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo 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()