Compartir vía


Procedimiento: Configuración del proveedor de estado de sesión AppFabric para ASP.NET (Almacenamiento en caché de AppFabric 1.1)

Este tema describe cómo configurar una aplicación web de ASP.NET para que utilice una caché AppFabric proporcionada para el almacenamiento en caché de estado de sesión. La configuración se realiza modificando el archivo web.config file para la aplicación web de destino.

Utilizar Microsoft AppFabric 1.1 para el almacenamiento en caché de Windows Server para el Estado de sesión

Para que la aplicación web ASP.NET utilice el proveedor de estado de sesión AppFabric, debe agregar los siguientes elementos al archivo web.config de la aplicación:

  • configSections: este debe ser el primer elemento del archivo de configuración, debajo de la etiqueta de apertura configuration. Es necesario para que los ensamblados Almacenamiento en caché de AppFabric funcionen.

  • dataCacheClients: este es un elemento secundario del elemento de configuración. Se utiliza para mantener los elementos dataCacheClient que configuran los clientes de caché y especifican los hosts de caché.

  • sessionState: este es un elemento secundario del elemento system.web. Especifica a la aplicación web que debe usar Microsoft AppFabric 1.1 para Windows Server para administrar los datos de estado de sesión. El atributo cacheName especifica la memoria caché con nombre que se usará. El atributo dataCacheClientName especifica qué sección dataCacheClient se utilizará en la configuración de la caché.

WarningAdvertencia
Se recomienda proteger al archivo web.config que se usa para especificar los nombres de los hosts de caché.

Para utilizar el almacenamiento en caché Microsoft AppFabric 1.1 para Windows Server para el estado de sesión

  1. En primer lugar, prepare el proyecto Visual Studio 2010 que se va a utilizar Microsoft AppFabric 1.1 para el almacenamiento en caché de Windows Server. Para obtener más información, consulte Preparación del entorno de desarrollo de clientes de caché (Almacenamiento en caché de AppFabric 1.1).

  2. Además de los ensamblados de almacenamiento en caché normales, consulte también el ensamblado Microsoft.Web.DistributedCache.dll en la ruta de instalación Microsoft AppFabric 1.1 para el almacenamiento en caché de Windows Server.

  3. Copie en el archivo web.config el elemento configSections del ejemplo que encontrará después de estos pasos. Asegúrese de que este elemento es el primero dentro de las etiquetas configuration.

  4. Copie en el archivo web.config el elemento dataCacheClients del ejemplo que encontrará después de estos pasos. Se debe agregar después del elemento configSections, dentro del elemento configuration.

    1. Configure los atributos name y cachePort de los elementos de host para que coincidan con los servidores de caché del entorno. Agregue o quite elementos de host según sea apropiado.
  5. Copie en el archivo web.config el elemento sessionState del ejemplo que encontrará después de estos pasos. Debe estar situado dentro del elemento system.web. Especifique los atributos cacheName y dataCacheClientName así como cualquier otra opción de configuración requerida.

  6. Determine la identidad de la aplicación web. Esto se puede realizar en el Administrador de IIS en los servidores web. Consulte la identidad del grupo de aplicaciones asociado a la aplicación web. Conceda a este usuario el acceso al clúster de caché mediante el comando Grant-CacheAllowedClientAccount de Windows Powershell.

    TipSugerencia
    Si el grupo de aplicaciones se ejecuta como una cuenta integrada del equipo, por ejemplo "NT Authority\Servicio de red", debe conceder acceso al clúster de caché para ese equipo. Para ello, puede especificar DOMAINNAME\MACHINENAME$ como la cuenta. Tenga en cuenta que el signo "$" se agrega al nombre del equipo para indicar que es la cuenta del equipo.

Ejemplo

En este ejemplo se muestra cómo configurar una aplicación web ASP.NET de modo que use un cliente de caché para almacenar datos de sesión en una memoria caché distribuida denominada default. El cliente de caché de este ejemplo únicamente está configurado para comunicarse con un host de caché denominado CacheServer1.

  1. En primer lugar, agregue el elemento configSections al archivo web.config como primer elemento del elemento configuration:

      <!--configSections must be the FIRST element -->
      <configSections>
        <section name="dataCacheClients"
                 type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core"
                 allowLocation="true" allowDefinition="Everywhere"/>
      </configSections>
    
  2. En segundo lugar, agregue el elemento dataCacheClients único que contiene uno o más elementos dataCacheClient. Agréguelo al archivo web.config, tras el elemento configSections. Ahora es cuando se configura el cliente de caché para que satisfaga las necesidades de la aplicación. Para obtener más información, consulte Opción de configuración de la aplicación (Almacenamiento en caché de AppFabric 1.1).

      <dataCacheClients>
        <dataCacheClient name="default">
          <hosts>
            <host name="CacheServer1" cachePort="22233" />
          </hosts>
        </dataCacheClient>
      </dataCacheClients>
    
  3. Después de agregar los elementos configSections y dataCacheClients, agregue el elemento sessionState al archivo web.config, dentro del elemento system.web. Ahora es cuando se especifica qué memoria caché usará la aplicación web para almacenar los datos de estado de sesión. Personalice los atributos cacheName y dataCacheClientName, así como cualquier otra opción de configuración requerida.

    Tenga en cuenta que si varias aplicaciones web necesitan compartir el mismo estado de sesión, deben usar el mismo valor de atributo applicationNamme. De lo contrario, no es necesario especificar el atributo applicationNamme.

        <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider" compressionEnabled="false">
          <providers>
            <add name="AppFabricCacheSessionStoreProvider"
                 type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
                 cacheName="default"
                 useBlobMode="true"
                 dataCacheClientName="default"/>
          </providers>
        </sessionState>
    

Cuando finalice, el archivo web.config final de la aplicación web se parecerá al ejemplo siguiente.

<?xml version="1.0"?>

<configuration>
  <configSections>
    <section name="dataCacheClients"
             type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core"
             allowLocation="true" allowDefinition="Everywhere"/>
  </configSections>

  <dataCacheClients>
    <dataCacheClient name="default" channelOpenTimeout="10000">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
      </hosts>
    </dataCacheClient>
  </dataCacheClients>
  
  <system.web>
    <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider" compressionEnabled="false">
      <providers>
        <add name="AppFabricCacheSessionStoreProvider"
             type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
             cacheName="default"
             useBlobMode="true"
             dataCacheClientName="default"/>
      </providers>
    </sessionState>
  </system.web>
</configuration>

Vea también

Conceptos

Proveedor de estado de sesión (Almacenamiento en caché de AppFabric 1.1)

  2012-03-05