Partager via


Création d'un objet DataCache dans les méthodes RoleEntryPoint d'Azure In-Role Cache

Important

Microsoft recommande tous les nouveaux développements d’utiliser le Cache Redis Azure. Pour obtenir de la documentation et des conseils actuels sur le choix d’une offre Azure Cache, consultez Quelle offre Azure Cache est adaptée à moi ?

Microsoft Azure paramètres de cache dans le fichier web.config ne sont pas automatiquement disponibles dans le contexte de la classe RoleEntryPoint (généralement défini dans le fichier WebRole.cs). Lorsque vous tentez de créer un objet DataCache dans les méthodes de classe RoleEntryPoint , l’erreur suivante se produit :

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

Cela se produit, car les paramètres dataCacheClient du fichier web.config ne sont pas appliqués automatiquement au nouvel objet client DataCache . Plus précisément, les attributs de l’élément autoDiscover ne sont pas disponibles, de sorte que l’objet DataCache ne peut pas cibler le rôle qui héberge la mise en cache.

Dans ce scénario, vous devez configurer par programmation un objet DataCacheFactoryConfiguration , qui accède directement aux paramètres du fichier web.config.

Configuration d'un client de cache par programme

  1. Créez un objet DataCacheFactoryConfiguration .

    DataCacheFactoryConfiguration config = new DataCacheFactoryConfiguration();
    
  2. Définissez autoDiscoveryProperty sur un nouvel objet DataCacheAutoDiscoverProperty . Spécifiez la valeur true pour activer la découverte automatique. Spécifiez également le nom du rôle qui héberge la mise en cache.

    config.AutoDiscoverProperty = new DataCacheAutoDiscoverProperty(true, "WebRole1");
    
  3. Définissez toutes les autres propriétés de l’objet DataCacheFactoryConfiguration qui contrôlent le comportement du client de cache.

  4. Créez un objet DataCacheFactory , en passant l’objet DataCacheFactoryConfiguration dans le constructeur.

    DataCacheFactory factory = new DataCacheFactory(config);
    
  5. Appelez la méthode DataCacheFactory.GetCache pour retourner l’objet DataCache pour le cache nommé cible.

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

Exemple

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

Voir aussi

Concepts

Prise en main du développement pour Azure In-Role Cache