Exportar (0) Imprimir
Expandir todo

Proveedor de estado de sesión para Caché de Azure

Actualizado: septiembre de 2014

noteNota
Si quiere que le guiemos a la hora de elegir la oferta de Caché de Azure que mejor se adapta a su aplicación, consulte ¿Cuál es la oferta de Caché de Azure más adecuada para mí?.

El proveedor de estado de sesión de es un mecanismo de almacenamiento fuera de proceso para aplicaciones ASP.NET. Este proveedor le permite almacenar el estado de su sesión en una caché de en lugar de en la memoria o en una base de datos SQL Server.

Para obtener una muestra de caché de estado de sesión, vea Ejemplo de caché de estado de sesión y caché de resultados de Caché.

El proveedor de estado de sesión de cuenta con las siguientes mejoras con respecto a los proveedores de estado de sesión de ASP.NET anteriores:

  • Usa la clase NetDataContractSerializer internamente para la serialización del estado de sesión.

  • Puede compartir el estado de sesión entre distintas aplicaciones ASP.NET.

  • Admite el acceso simultáneo al mismo estado de sesión para varios lectores y un único escritor.

  • Puede usar compresión a través de las propiedades del cliente de caché.

El uso de la clase NetDataContractSerializer para la serialización permite la compatibilidad de una mayor variedad de tipos serializables. Incluye compatibilidad para tipos binarios serializables.

El proveedor admite la capacidad de que distintas aplicaciones ASP.NET lean y escriban los mismos datos de estado de sesión. Por ejemplo, supongamos que un desarrollador tiene dos sitios ASP.NET diferentes: /contoso y /adventureworks. El proveedor de estado de sesión se puede configurar en cada aplicación web para apuntar al mismo almacén de estado de sesión en el clúster de caché. Como resultado, ambas aplicaciones leerán y escribirán los mismos datos de sesión para un identificador de sesión dado.

El proveedor de estado de sesión admite el acceso simultáneo al mismo estado de sesión para varios lectores y un único escritor. En este caso, los lectores están definidos como páginas marcadas que usan el estado de sesión ReadOnly. Las aplicaciones que hacen un gran uso de las devoluciones de llamada de AJAX no experimentarán la cola de solicitudes del servidor si la mayoría de los patrones de acceso de estado de sesión de la aplicación únicamente requieren acceso de solo lectura al estado de sesión.

  1. En primer lugar, configure una caché para usar con el proveedor de ASP.NET. Puede hospedar almacenar en memoria caché con una topología de colocalización o con un rol dedicado.

  2. Use NuGet para agregar compatibilidad con almacenar en memoria caché a su proyecto de ASP.NET en Visual Studio. Para obtener instrucciones, vea Procedimiento: Preparación de Visual Studio para usar Caché en rol (Caché de Azure).

    ImportantImportante
    Estos pasos requieren la última versión del Administrador de paquetes NuGet (2.1.31002.9028 o superior). Para instalar el Administrador de paquetes de NuGet más reciente, vaya a http://go.microsoft.com/fwlink/?LinkId=240311.

  3. Quite los elementos sessionState existentes que configuren el almacenamiento en caché del estado de sesión. No quite la sección comentada sessionState que agregó el paquete NuGet.

  4. En el archivo web.config, elimine los comentarios de la sección sessionState.

        <!-- Azure Caching session state provider -->
        <sessionState mode="Custom" customProvider="AFCacheSessionStateProvider">
          <providers>
            <add name="AFCacheSessionStateProvider" 
              type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
              cacheName="default" 
              dataCacheClientName="default" 
              applicationName="AFCacheSessionState"/>
          </providers>
        </sessionState>
    

En la lista siguiente encontrará cambios de configuración opcionales que afectan al proveedor de caché de resultados.

  • Cambie la caché con nombre de destino con el atributo cacheName del elemento add.

  • Cambie el origen de la configuración del cliente de caché con el atributo dataCacheClientName del elemento add. Establezca este atributo en el nombre de una sección dataCacheClient existente en el archivo web.config.

  • Modifique el comportamiento del cliente de caché; para ello, cambie la configuración en la sección dataCacheClient asociada. Por ejemplo, habilite la compresión con el atributo isCompressionEnabled.

    <dataCacheClient name="default" isCompressionEnabled="true">
    
    Para obtener una lista de las opciones de configuración disponibles, vea Opciones de configuración del cliente de Caché en rol (Web.config). Tenga en cuenta que los proveedores ASP.NET para almacenar en memoria caché no admiten los tipos de serialización binarios ni personalizados. Si se usan estos serializadores para el estado de sesión, se produce la excepción siguiente: "El tipo 'Microsoft.Web.DistributedCache.SerializableSessionStateStoreData' en el ensamblado 'Microsoft.Web.DistributedCache, Version=101.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' no está marcado como serializable"

  • Cambie la configuración del proveedor de estado de sesión. Para obtener una lista de las opciones de configuración disponibles, vea Configuración del proveedor de estado de sesión para ASP.NET (Caché de Azure).

Vea también

Mostrar:
© 2015 Microsoft