Azure Caching - ошибка после обновления до SDK 2.1 и кэширования 2.1

Похоже, что по этой теме уже открыто несколько вопросов, но я считаю, что мои могут быть другими. Моя настройка:

  • 1 Azure Cache Worker Role
  • 1 веб-роль

Примерно неделю назад они существовали в гармонии, пока я не попытался перейти на Azure caching 2.1. Как только я это сделал, я столкнулся с проблемой "Нет такого хоста неизвестен", которая, похоже, затронула многих разработчиков. Я нашел много вопросов и сайтов, на которых мне было предложено обновить установку Azure SDK до новой версии 2.1. Я сделал все эти вещи:

  • Установите новейший Azure SDK 2.1
  • Удалить Azure SDK 2.0
  • Удалите и переустановите Azure Caching 2.1
  • Тройная проверка конфигурации всех моих настроек кеширования
  • Тройная проверка, что все ссылки указывают на самые новые версии, а не на старые
  • Обновите мой проект Azure до версии 2.1, щелкнув правой кнопкой мыши, перейдите в "Свойства" и нажмите "Обновить".

и я все еще получаю следующее (Моя ошибка):

Exception type: SocketException 
Exception message: No such host is known
at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult)

Это отличается от более типичной ошибки, которую показывает большинство других вопросов и сайтов, а именно (чаще сообщается об ошибке, а не у меня):

No such host is known 
Exception message: No such host is known
at Microsoft.ApplicationServer.Caching.AsyncResultNoResult.EndInvoke()

У меня около 30 часов на устранение неполадок, и я мог бы действительно помочь. Может быть, я просто пропускаю какой-то шаг по поводу обновления SDK? Каким-то образом, может быть, он все еще использует старую версию DLL? Есть ли какой-то надежный способ проверить это, кроме просмотра пути каждой ссылки в проекте (что я уже сделал, и все они совпадают)?

2 ответа

Не совсем ответ, но некоторые комментарии, которые могут помочь вам диагностировать проблему:

  • Visual Studio 2012 / обновление 3 - убедитесь, что у вас установлены последние обновления для VS. У нас были похожие проблемы, и это было одной из тех вещей, которые нам помогли.
  • Сбор большого количества данных диагностики кеша - в разделе конфигурации кеша измените Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel значение для 4 в разделе конфигурации вашей роли кеша. После этого добавьте следующие строки кода в метод OnStart() вашей рабочей роли кэша:

    DiagnosticMonitorConfiguration dmConfig = DiagnosticMonitor.GetDefaultInitialConfiguration();
    
    // Configure the collection of cache diagnostic data.
    CacheDiagnostics.ConfigureDiagnostics(dmConfig);
    
    DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString",
        dmConfig);
    
    return base.OnStart();
    

Надеюсь, это даст вам представление о том, что именно происходит.

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

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

Я использовал процедуру, описанную Гауравом Мантри в его ответе, и мне удалось обнаружить, что в предыдущих версиях Windows Azure Caching DataCacheFactory выдает исключение, если роль кэша не найдена в csdefв то время как в 2.1 он рассматривал бы имя роли кэша как адрес в сети - таким образом вызывая 3-минутное ожидание и последующее исключение.

Таким образом, я адаптировал свой код для обнаружения этого нового поведения - более подробно см. Этот вопрос

Другие вопросы по тегам