2013-05-29 1 views
0

У нас есть развертывание, которое некоторое время использует роль кеша (без реальных проблем) и к которому мы недавно добавили выделенный ящик в одном экземпляре ,Ошибка кратковременного кэширования Azure: «Кэш-ссылка не существует. Обратитесь к администратору или используйте инструмент администрирования кэша для создания кэша. »

Поскольку мы добавили совместное размещение кэша мы начали иногда видеть эту ошибку:

ErrorCode<ERRCA0009>:SubStatus<ES0001>:Cache referred to does not exist. Contact administrator or use the Cache administration tool to create a Cache. 

, когда мы доступ к кэшу в роли кэша, но это, кажется, затем почти сразу и все в порядке снова на некоторое время, пока эта проблема не вернется.

Кажется маловероятным, что кеш не существует, поскольку он работает, а затем начинает работать снова очень быстро после этого, так что может быть проблема?

РЕДАКТИРОВАТЬ, чтобы добавить немного более подробно.

У нас есть 2 тайника. 1 представляет собой выделенную роль кеша, которая содержит некоторые данные ответа, совместно используемые между ролями веб-и рабочих, несколько экземпляров используют кеш (вероятно, около 10). 1 является совместно расположенным кешем на 1 веб-роли (2 экземпляра), которая содержит некоторые небольшие идентификаторы, которые необходимы только этой роли.

Мы полагаем, что проблема может быть связана с тем, что оба кэша настроены на использование одной и той же учетной записи хранилища в значении Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString, и они, похоже, перезаписывают друг друга.

Это конфиг от той роли, которую используют как кэша:

<dataCacheClients> 
<dataCacheClient name="binaryConfig"> 
    <autoDiscover isEnabled="true" identifier="CacheRole" /> 
</dataCacheClient> 
<dataCacheClient name="request-ids"> 
    <autoDiscover isEnabled="true" identifier="Api" /> 
    <localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />  
</dataCacheClient> 

и мы просто создать клиент кэша, делая

new DataCache(cacheName, clientConfigurationName) 

Затем вызов Get и Put и т.д.

+0

Сэм - можете ли вы добавить немного больше деталей? Разве это развертывание веб-роли с использованием colocated cache? Сколько экземпляров использует кеш? Размер экземпляра и кеша? – viperguynaz

+0

можете ли вы отправить часть файла вашего файла web.config и код .Net для доступа к кеш-клиенту – NavaRajan

+0

, обновите вопрос, чтобы включить нужные данные. –

ответ

1

Итак, я думаю, что это ошибка в 1.7 SDK, где, если 2 кэша сконфигурированы для использования одной и той же учетной записи хранилища для хранения своей конфигурации, каждый экземпляр, похоже, перезаписывает конфигурацию других экземпляров, поэтому вы получаете конфигурацию последней для запуска. Если мы перезагружаем одну роль, config содержит эту конфигурацию ролей, и если мы перезагружаем другую роль, мы получим эту конфигурацию ролей. Изменение каждого кеша для использования отдельной учетной записи хранилища, похоже, устраняет проблему.

0

В моем случае это похоже на то, что у меня было две роли в одном проекте с лазурными именами с разными именованными кешами (одна роль 4 назвала кеши, другая роль - только один именованный кеш). Случилось так, что cacheConfig.xml в моем кэше cacheclusterconfigs blob (учетная запись хранилища, связанная с совместно расположенным кешем) получил переопределение - кажется, что для одного развертывания допускается только одна конфигурация кэша именования для всех ролей.

Итак, я думаю, что то же самое происходит, как и в вашем случае.

Смежные вопросы