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

问题描述:

我试图从本地开发机器连接到Azure Redis Cache的实例。我使用StackExchange.Redis像这样:Azure Redis缓存:“角色发现数据不可用”

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

lazyConnection叫我得到一个InvalidOperationException与消息:

“的角色发现数据不可用”

这单衬垫堆栈跟踪:

Microsoft.WindowsAzu re.ServiceRuntime.RoleEnvironment.get_CurrentRoleInstance()

为什么抛出的异常以及如何避免它?

StackExchange.Redis尝试发现被子下的RoleInstance名称,如果你不指定ConfigurationOptions.ClientName值。奇怪的是,你得到这个错误冒出来的代码,因为有问题的代码处理所有异常和默认返回到计算机名称。

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

+0

可能是因为我的Visual Studio中安装了[OzCode](http://oz-code.com/)调试扩展,所以我看到了这个异常。 – urig