2013-08-28 2 views
2

Итак, сегодня яНе могу получить Azure Cache для работы. «Временный сбой. Повторите попытку позже».

  1. установлен лазурное SDK 2.1 и
  2. создал новый проект с одной WorkerRole,
  3. получил пакет Caching, используя NuGet,
  4. установить кэширование для роли к «соотнесен»
  5. Установите узел к «WorkerRole1» в app.config
  6. комментировал раздел о безопасности, так как это только тест
  7. вставил следующую строку в «Запустить» DataCache c = new DataCacheFactory(). GetDefaultCache();
  8. Hit Debug

и получил эту ошибку, пытаясь выполнить строку выше:

Существует временный отказ. Повторите попытку позже. (Один или несколько указанных серверов кеша недоступны, что может быть вызвано занятой сетью или серверами. Для локальных кластеров кэша также проверяйте следующие условия. Убедитесь, что для этой учетной записи клиента предоставлено разрешение безопасности, и убедитесь, что AppFabric Caching Service допускается через брандмауэр на все хосты кэша. Также MaxBufferSize на сервере должна быть больше или равна сериализованным размером объекта, посланного от клиента.)

Я посмотрел вокруг много (около 5 часов) и не нашел для этого объяснений ... Может ли кто-нибудь помочь?

+1

Просто любопытно - следует имя хоста быть 'WebRole1', если у вас есть рабочая роль? –

+0

Да, попробуйте изменить 'WebRole1' на' WorkerRole1' или что бы то ни было ** фактическое имя ** рабочей роли. – astaykov

+0

ops, который был опечаткой! мой плохой – Leonardo

ответ

3

Я установил старую версию SDK (версии 1,8 и 2,0), а сейчас его рабочий ... перейти фигура ...

+0

Я потратил весь свой день и наконец нашел ваш ответ. Оно работало завораживающе. Спасибо. – User5590

0

Я столкнулся с этим, когда проект облачной службы не был должным образом обновлен до 2.1. Убедитесь, что проект определенно использует 2.1 SDK, а затем убедитесь, что все ваши пакеты NuGet обновлены. Для последнего пакета NuGet для кэширования Azure требуется пакет Windows Azure 2.1 SDK.

+0

Дело в том, что я не получаю исключение DLL или что-то в этом роде ... но плохо проверите его – Leonardo

+0

Что может иметь смысл, если версии DLL несовместимы. Удачи! – TJBeanz

1

В моем случае у меня такое же исключение (с Azure SDK 2.1 и Windows Azure Caching 2.1), когда я отключу кеш из назначенной роли и запустил размещенную службу в эмуляторе вычислений (мне нужно, чтобы это поведение отключило кеширование, основанное только на конфигурации csdef, без дополнительных настроек).

В предыдущей версии Azure Caching этот сценарий не вызывает исключение в DataCacheFactory конструктора, теперь у меня больше не это исключение, но роль висит в вызове конструктора DataCache в течение трех минут, и чем я получил исключение вы описываете.

Я решил эту проблему, изменив код, который определяет, отключен ли кеш - вы можете прочитать более подробную информацию в this SO question.

1

Я столкнулся с той же ошибкой, и проблема для меня заключалась в том, что я установил пакет кэширования из NuGet (следуя инструкциям отсюда: http://www.windowsazure.com/en-us/documentation/articles/cache-dotnet-how-to-use-in-role/#NuGet), который устанавливает последнюю версию по умолчанию и пренебрегает тем фактом, что мой проект был на более старой версии Azure (2.1). Следовательно, некоторые компоненты из пакета кэширования ссылаются на Microsoft.WindowsAzure.Diagnostics, Version = 2.2.0.0, который был более высокой версией, чем ссылка на диагностическую сборку в проекте.

Я установил путем удаления пакета Azure Cache (v 2.2) и вручную устанавливать совпадающую версии (v 2.1), выполнив команду в Package Manager Console:

PM> Install-Package Microsoft.WindowsAzure.Caching -Version 2.1 
+0

После 6 часов проб и ошибок я нашел ваше сообщение. Спасибо. – Don