0

我正在尝试从本地开发机器连接到Azure Redis 缓存的实例。我像这样使用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()

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

4

1 回答 1

1

如果您未指定ConfigurationOptions.ClientName值, StackExchange.Redis会尝试在幕后发现 RoleInstance 名称。奇怪的是,您的代码中出现了此错误,因为有问题的代码处理所有异常并默认返回计算机名称。

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

于 2016-10-04T16:01:04.347 回答