Конфигурация уведомлений о кеше не работает в Windows Azure Cache Preview
Я пытаюсь настроить реализацию Windows Azure Cache Preview, но у меня возникают проблемы с настройкой конфигурации локального кэша. Вот мой текущий конфиг:
<dataCacheClients>
<tracing sinkType="DiagnosticSink" traceLevel="Error" />
<dataCacheClient name="default" requestTimeout="30000"
maxConnectionsToServer="5" isCompressionEnabled="true">
<autoDiscover isEnabled="true" identifier="{My Role Name}" />
<localCache isEnabled="true" sync="NotificationBased"
objectCount="100000" ttlValue="300" />
<clientNotification pollInterval="60" />
</dataCacheClient>
</dataCacheClients>
Я создаю объект кеша по умолчанию, используя Ninject, вот так:
Bind<DataCache>().ToMethod((context) => new DataCacheFactory().GetDefaultCache());
Эта инъекция работала хорошо, когда я ничего не делал с локальным кэшированием, но у меня возникли проблемы с помещением больших массивов данных в кэш (тайм-ауты), поэтому я подумал, что увижу, какое поведение приведет к использованию локального кэша.
Поскольку я изменил конфигурацию (на основе этой статьи в MSDN, см. "Кэширование (предварительный просмотр) ролей" в этом разделе), я получаю следующую ошибку:
ErrorCode ERRCA0015: SubStatus ES0001: аннулирование на основе уведомлений не поддерживается, поскольку кэш не настроен для поддержки уведомлений.
Это немного сбивает с толку, так как я подумал, что именно этим должен был заниматься раздел конфигурации dataCacheClients. Нужно ли программно устанавливать что-то для самого объекта DataCache или я что-то упускаю в веб-конфигурации?
1 ответ
Необходимо убедиться, что в именованном кэше на стороне сервера включены уведомления. Это можно посмотреть в Visual Studio на вкладке "Кэширование" для роли Azure, на которой есть сторона сервера кэширования.