Creación de un objeto DataCache en métodos RoleEntryPoint en Azure In-Role Cache

Importante

Microsoft recomienda todos los nuevos desarrollos que usen Azure Redis Cache. Para obtener documentación actual e instrucciones sobre cómo elegir una oferta de Azure Cache, consulte ¿Qué oferta de Azure Cache es adecuada para mí?

Microsoft Azure La configuración de caché del archivo web.config no está disponible automáticamente en el contexto de la clase RoleEntryPoint (normalmente definida en el archivo WebRole.cs). Al intentar crear un objeto DataCache en los métodos de clase RoleEntryPoint , se produce el siguiente error:

{"ErrorCode<ERRCA0021>:SubStatus<ES0001>:Server collection cannot be empty."}

Esto sucede porque la configuración dataCacheClient del archivo web.config no se aplica automáticamente al nuevo objeto de cliente DataCache . En concreto, los atributos del elemento autoDiscover no están disponibles, por lo que el objeto DataCache no puede tener como destino el rol que hospeda el almacenamiento en caché.

En este escenario, debe configurar mediante programación un objeto DataCacheFactoryConfiguration , que accede directamente a la configuración del archivo web.config.

Cómo configurar un cliente de caché mediante programación

  1. Cree un objeto DataCacheFactoryConfiguration .

    DataCacheFactoryConfiguration config = new DataCacheFactoryConfiguration();
    
  2. Establezca AutoDiscoveryProperty en un nuevo objeto DataCacheAutoDiscoverProperty . Especifique true para habilitar la detección automática. Especifique también el nombre del rol que hospeda el almacenamiento en caché.

    config.AutoDiscoverProperty = new DataCacheAutoDiscoverProperty(true, "WebRole1");
    
  3. Establezca cualquier otra propiedad en el objeto DataCacheFactoryConfiguration que controle el comportamiento del cliente de caché.

  4. Cree un objeto DataCacheFactory y pase el objeto DataCacheFactoryConfiguration en el constructor.

    DataCacheFactory factory = new DataCacheFactory(config);
    
  5. Llame al método DataCacheFactory.GetCache para devolver el objeto DataCache para el destino con nombre cache.

    DataCache cache = factory.GetCache("default");
    

Ejemplo

// Create a DataCacheFactoryConfiguration object
DataCacheFactoryConfiguration config = new DataCacheFactoryConfiguration();

// Enable the AutoDiscorveryProperty (and any other required configuration settings):
config.AutoDiscoverProperty = new DataCacheAutoDiscoverProperty(true, "WebRole1");

// Create a DataCacheFactory object with the configuration settings:
DataCacheFactory factory = new DataCacheFactory(config);

// Use the factory to create a DataCache client for the "default" cache:
DataCache cache = factory.GetCache("default");

Consulte también

Conceptos

Introducción al desarrollo para Caché en rol de Azure