Практическое руководство. Создание объекта 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 напрямую.
Программная настройка клиента кэша
Создайте объект DataCacheFactoryConfiguration .
DataCacheFactoryConfiguration config = new DataCacheFactoryConfiguration();
Задайте для автообнаруженияProperty новый объект DataCacheAutoDiscoverProperty . Это свойство используется для подключения к кэшу. Выберите
true
, чтобы включить автоматическое обнаружение. Укажите конечную точку кэша.config.AutoDiscoverProperty = new DataCacheAutoDiscoverProperty(true, "mycache.cache.windows.net");
config.SecurityPropertie
Задайте для свойства новый экземпляр DataCacheSecurity и укажите ключ доступа для кэша и нужно ли включить SSL для обмена данными между кэшем и клиентами.config.SecurityProperties = new DataCacheSecurity("[Replace with Access Key]", false);
Примечание
Дополнительные сведения см. в разделе "Защита обмена данными между клиентами кэша и кэшем".
Задайте любые другие свойства объекта DataCacheFactoryConfiguration , которые управляют поведением клиента кэша.
Создайте объект DataCacheFactory , передав объект DataCacheFactoryConfiguration в конструктор.
DataCacheFactory factory = new DataCacheFactory(config);
Вызовите метод 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");