Procedura: Creare un oggetto DataCache nei metodi RoleEntryPoint in Cache In-Role di Azure

Importante

Microsoft consiglia tutti i nuovi sviluppi di usare Cache Redis di Azure. Per la documentazione e le indicazioni correnti sulla scelta di un'offerta di Cache di Azure, vedere Quale offerta di Cache di Azure è adatta per l'utente?

Microsoft Azure le impostazioni della cache nel file web.config non sono automaticamente disponibili nel contesto della classe RoleEntryPoint (in genere definita nel file WebRole.cs). Quando si tenta di creare un oggetto DataCache nei metodi della classe RoleEntryPoint , si verifica l'errore seguente:

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

Ciò si verifica perché le impostazioni dataCacheClient nel file web.config non vengono applicate automaticamente al nuovo oggetto client DataCache . In particolare, gli attributi dell'elemento autoDiscover non sono disponibili, pertanto l'oggetto DataCache non è in grado di specificare come destinazione il ruolo che ospita la memorizzazione nella cache.

In questo scenario è necessario configurare a livello di codice un oggetto DataCacheFactoryConfiguration , che accede direttamente alle impostazioni nel file web.config.

Come configurare un client della cache a livello di codice

  1. Creare un oggetto DataCacheFactoryConfiguration .

    DataCacheFactoryConfiguration config = new DataCacheFactoryConfiguration();
    
  2. Impostare AutoDiscoveryProperty su un nuovo oggetto DataCacheAutoDiscoverProperty . Specificare true per abilitare l'individuazione automatica. Specificare anche il nome del ruolo che ospita la memorizzazione nella cache.

    config.AutoDiscoverProperty = new DataCacheAutoDiscoverProperty(true, "WebRole1");
    
  3. Impostare qualsiasi altra proprietà nell'oggetto DataCacheFactoryConfiguration che controlla il comportamento del client della cache.

  4. Creare un oggetto DataCacheFactory passando l'oggetto DataCacheFactoryConfiguration nel costruttore.

    DataCacheFactory factory = new DataCacheFactory(config);
    
  5. Chiamare il metodo DataCacheFactory.GetCache per restituire l'oggetto DataCache per la cache denominata di destinazione.

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

Esempio

// 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");

Vedere anche

Concetti

Introduzione allo sviluppo per Cache nel ruolo di Azure