Кэш Azure Redis: данные обнаружения ролей недоступны

Я пытаюсь подключиться к экземпляру Azure Redis Cache с моей локальной машины разработчика. Я использую StackExchange.Redis следующим образом:

var lazyConnection = new Lazy<ConnectionMultiplexer>(() =>
{
    return ConnectionMultiplexer.Connect(
        $"{redisServerUrl},abortConnect=false,ssl=true,password={redisServerKey},connectTimeout=10000,syncTimeout=10000");
});

Когда вызывается lazyConnection, я получаю InvalidOperationException с сообщением:

"данные обнаружения ролей недоступны"

и эта однострочная трассировка стека:

Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.get_CurrentRoleInstance()

Почему возникает исключение и как его избежать?


person urig    schedule 04.10.2016    source источник


Ответы (1)


StackExchange.Redis пытается обнаружить скрытое имя RoleInstance, если вы не укажете значение ConfigurationOptions.ClientName. Странно, что вы получаете эту ошибку в своем коде, потому что рассматриваемый код обрабатывает все исключения и по умолчанию возвращает имя компьютера.

Я подозреваю, что если вы добавите ",name=XXX" в строку подключения, ошибка исчезнет, ​​потому что вы избежите этого пути кода.

person JonCole    schedule 04.10.2016
comment
Возможно, я увидел исключение из-за того, что в моей Visual Studio установлено расширение отладки OzCode. - person urig; 04.10.2016