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
Erstellen Eines DataCacheFactoryConfiguration-Objekts .
DataCacheFactoryConfiguration config = new DataCacheFactoryConfiguration();
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");
Legen Sie die
config.SecurityPropertie
Eigenschaft "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.
Legen Sie alle anderen Eigenschaften des DataCacheFactoryConfiguration -Objekts fest, die das Verhalten des Cacheclients steuern.
Erstellen Sie ein DataCacheFactory-Objekt , indem Sie das DataCacheFactoryConfiguration-Objekt im Konstruktor übergeben.
DataCacheFactory factory = new DataCacheFactory(config);
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");