2012-06-17 2 views
0

Попытка создать новую роль выделенного кэша в Windows Azure, но при каждом запуске этого кода получить исключение NotSupportedException: This operation is not supported by the cache. В итоге, вот что я сделал ...Невозможно вызвать экземпляр Windows Azure Cache

я построить тайник, используя следующий код, и исключение встречается, как только я называю GetCache(string):

_dataCacheFactory = new DataCacheFactory(); 
_cache = _dataCacheFactory.GetCache(cacheName); 

Кроме того, у меня есть добавлен соответствующий <dataCacheClients> раздел конфигурации и ссылки на следующих узлов (Все ссылки на сборки в Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-06\ref):

  • Microsoft.ApplicationServer.Caching.AzureClientHelper
  • Microsoft.ApplicationServer.Caching.AzureCommon
  • Microsoft.ApplicationServer.Caching.Client
  • Microsoft.ApplicationServer.Caching.Core
  • Microsoft.Web.DistributedCache

Я также настроить кэш Роль рабочего в проекте Azure.

Насколько я могу судить, я следил за всей документацией MSDN, может ли кто-нибудь предложить, что может быть неправильно здесь?

ответ

2

Я предполагаю, что вы пытаетесь получить именованный кеш, который является not supported в общем кэшировании Azure. Вместо _dataCacheFactory.GetCache(cacheName) попробуйте использовать _dataCacheFactory.GetDefaultCache().

+0

Я не уверен, что понимаю «Общее» Кэширование ... Я буду смотреть на это. Что мне нужно сделать для поддержки «Именованных» кешей? – JoeGeeky

+0

«Совместное» кэширование - это кэширование Azure Appfabric, которое существует около 18 месяцев. Я не слышал о каких-либо планах поддержки названных кешей. Другим видом кэширования является предварительный просмотр кэширования, который был анонсирован пару недель назад. Это частный кеш. Я считаю, что вы можете делать именованные кеши. В зависимости от вашего варианта использования это может быть более подходящий вариант. https://www.windowsazure.com/en-us/develop/net/how-to-guides/cache/ –

+0

Спасибо ... Это привело к решению. Мне пришлось использовать перегрузку конструктора 'DataCacheFactory (DataCacheFactoryConfiguration)' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' Затем я смог использовать метод GetDefaultCache(), который по существу нацеливал именованный экземпляр, связанный с этой фабрикой. – JoeGeeky

2

При использовании Windows Azure Cache (Dedicated and Co-located Cache) вы должны использовать ссылки, расположенные ниже (Это выпущен как предварительный просмотр):

C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-06\ref\CachingPreview 

Кроме того, когда вы используете Windows Azure Shared Cache, то вы должны использовать ссылки, расположенные ниже:

C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-06\ref\ 

Разница между Windows Azure Cache (выделенный и совместно расположенный кэш) и Windows Azure Shared Cache - это то, что первый из них находится на вашей виртуальной машине и делится между экземплярами, создавая накопительный общий кеш, а второй находится за пределами ваших виртуальных машин (в Windows Azure вы настраиваете его из Windows Azure Management Portal), и все экземпляры подключают этот кеш к сетевой канал.