Поделиться через


Практическое руководство. Создание объекта DataCache в методах RoleEntryPoint для Azure управляемая служба кэша

Важно!

Корпорация Майкрософт рекомендует все новые разработки использовать кэш Redis для Azure. Текущая документация и рекомендации по выбору предложения кэша Azure см. в статье о том, какое предложение кэша Azure подходит для меня?

управляемая служба кэша параметры в файле web.config автоматически недоступны в контексте класса RoleEntryPoint (обычно определяется в файле WebRole.cs). При попытке создать объект DataCache в методах класса RoleEntryPoint возникает следующая ошибка:

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

Это происходит потому, что параметры dataCacheClient в файле web.config не применяются автоматически к новому клиентскому объекту DataCache . В частности, атрибуты элемента автообнаружения недоступны, поэтому объект DataCache не может ориентироваться на роль, в которую размещается кэширование.

В этом сценарии необходимо программно настроить объект DataCacheFactoryConfiguration , который обращается к параметрам в файле web.config напрямую.

Программная настройка клиента кэша

  1. Создайте объект DataCacheFactoryConfiguration .

    DataCacheFactoryConfiguration config = new DataCacheFactoryConfiguration();
    
  2. Задайте для автообнаруженияProperty новый объект DataCacheAutoDiscoverProperty . Это свойство используется для подключения к кэшу. Выберите true, чтобы включить автоматическое обнаружение. Укажите конечную точку кэша.

    config.AutoDiscoverProperty = new DataCacheAutoDiscoverProperty(true, "mycache.cache.windows.net");
    
  3. config.SecurityPropertieЗадайте для свойства новый экземпляр DataCacheSecurity и укажите ключ доступа для кэша и нужно ли включить SSL для обмена данными между кэшем и клиентами.

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

    Примечание

    Дополнительные сведения см. в разделе "Защита обмена данными между клиентами кэша и кэшем".

  4. Задайте любые другие свойства объекта DataCacheFactoryConfiguration , которые управляют поведением клиента кэша.

  5. Создайте объект DataCacheFactory , передав объект DataCacheFactoryConfiguration в конструктор.

    DataCacheFactory factory = new DataCacheFactory(config);
    
  6. Вызовите метод DataCacheFactory.GetCache , чтобы вернуть объект DataCache для целевого именованного кэша.

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

Пример

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