Share via


Vorgehensweise: Erstellen eines DataCache-Objekts in RoleEntryPoint-Methoden für Azure Managed Cache Service

Wichtig

Microsoft empfiehlt, alle neuen Entwicklungen azure Redis Cache zu verwenden. Aktuelle Dokumentation und Anleitung zum Auswählen eines Azure Cache-Angebots finden Sie unter Welches Azure Cache-Angebot ist für mich geeignet?

Managed Cache Service Einstellungen in der web.config-Datei sind nicht automatisch im Kontext der RoleEntryPoint-Klasse verfügbar (in der Regel in der Datei "WebRole.cs" definiert). Wenn Sie versuchen, ein DataCache-Objekt in den RoleEntryPoint-Klassenmethoden zu erstellen, tritt der folgende Fehler auf:

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

Dies geschieht, da die DataCacheClient-Einstellungen in der web.config-Datei nicht automatisch auf das neue DataCache-Clientobjekt angewendet werden. Insbesondere sind die Attribute des AutoDiscover-Elements nicht verfügbar, sodass das DataCache-Objekt nicht auf die Rolle abzielen kann, die zwischenspeichert.

In diesem Szenario müssen Sie ein DataCacheFactoryConfiguration-Objekt programmgesteuert konfigurieren, das direkt auf die Einstellungen in der web.config-Datei zugreift.

Programmgesteuertes Konfigurieren eines Cacheclients

  1. Erstellen Eines DataCacheFactoryConfiguration-Objekts .

    DataCacheFactoryConfiguration config = new DataCacheFactoryConfiguration();
    
  2. Legen Sie die AutoDiscoveryProperty auf ein neues DataCacheAutoDiscoverProperty-Objekt fest. Diese Eigenschaft wird zum Herstellen einer Verbindung mit dem Cache verwendet. Geben Sie true an, um die automatische Ermittlung zu aktivieren. Geben Sie außerdem den Cacheendpunkt an.

    config.AutoDiscoverProperty = new DataCacheAutoDiscoverProperty(true, "mycache.cache.windows.net");
    
  3. Legen Sie die config.SecurityPropertieEigenschaft "s" auf eine neue DataCacheSecurity-Instanz fest, und geben Sie den Zugriffsschlüssel für den Cache an und gibt an, ob SSL für die Kommunikation zwischen dem Cache und den Clients aktiviert sein soll.

    config.SecurityProperties = new DataCacheSecurity("[Replace with Access Key]", false);
    

    Hinweis

    Weitere Informationen finden Sie unter Sichern der Kommunikation zwischen Cacheclients und dem Cache.

  4. Legen Sie alle anderen Eigenschaften des DataCacheFactoryConfiguration -Objekts fest, die das Verhalten des Cacheclients steuern.

  5. Erstellen Sie ein DataCacheFactory-Objekt , indem Sie das DataCacheFactoryConfiguration-Objekt im Konstruktor übergeben.

    DataCacheFactory factory = new DataCacheFactory(config);
    
  6. Rufen Sie die DataCacheFactory.GetCache-Methode auf, um das DataCache-Objekt für den benannten Zielcache zurückzugeben.

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

Beispiel

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

// Enable the AutoDiscoveryProperty (and any other required configuration settings):
config.AutoDiscoverProperty = 
    new DataCacheAutoDiscoverProperty(true, "mycache.cache.windows.net");

// Configure the access key and sslEnabled setting.
config.SecurityProperties = new DataCacheSecurity("[Replace with Access Key]", false);

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