Azure Redis缓存:“角色发现数据不可用”

时间:2016-10-04 05:55:43

标签: azure redis azure-redis-cache

我正在尝试从我的本地开发计算机连接到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()

为什么会抛出异常,我该如何避免它?

1 个答案:

答案 0 :(得分:1)

如果未指定 ConfigurationOptions.ClientName 值,

StackExchange.Redis 会尝试发现隐藏的RoleInstance名称。奇怪的是,您将此错误冒出了代码,因为有问题的代码会处理所有异常并返回到返回计算机名称的默认值。

我怀疑如果您将“,name = XXX”添加到您的连接字符串,错误将会消失,因为您将避免该代码路径。