2016-10-04 71 views
0

我試圖從本地開發機器連接到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()

爲什麼拋出的異常以及如何避免它?

回答

1

StackExchange.Redis嘗試發現被子下的RoleInstance名稱,如果你不指定ConfigurationOptions.ClientName值。奇怪的是,你得到這個錯誤冒出來的代碼,因爲有問題的代碼處理所有異常和默認返回到計算機名稱。

我懷疑如果您將「,name = XXX」添加到您的連接字符串中,錯誤將消失,因爲您將避免該代碼路徑。

+0

可能是因爲我的Visual Studio中安裝了[OzCode](http://oz-code.com/)調試擴展,所以我看到了這個異常。 – urig