2014-05-21 192 views
7

我試圖使用以下代碼連接到預覽Azure Redis緩存。連接到Azure Redis緩存

var options = new ConfigurationOptions(); 
options.EndPoints.Add("myname.redis.cache.windows.net", 6379); 
options.Ssl = true; 
options.Password = "VeryLongKeyCopiedFromPortal"; 
var connection = ConnectionMultiplexer.Connect(options); 

當我做到這一點我得到的異常

「這是不可能連接到Redis的服務器(一個或多個);創建一個斷開連接多路複用器,禁用AbortOnConnectFail」

有什麼可以造成這個?

回答

9

SSL的端口是6380.端口6379用於非SSL。 StackExchange.Redis默認爲這些端口如果沒有設置,所以你應該能夠只是從你的代碼中刪除的端口,像這樣:

var options = new ConfigurationOptions(); 
options.EndPoints.Add("myname.redis.cache.windows.net"); 
options.Ssl = true; 
options.Password = "VeryLongKeyCopiedFromPortal"; 
var connection = ConnectionMultiplexer.Connect(options); 

或者,你可以使用一個連接字符串,而不是ConfigurationOptions對象:

var connection = ConnectionMultiplexer.Connect(
    "myname.redis.cache.windows.net,ssl=true,password=VeryLongKeyCopiedFromPortal"); 
+0

我已經嘗試了這兩種方法的同一個錯誤。 – Craig

+0

@克雷格應該工作正常;下面的測試通過我,並通過SSL會談:http://pastie.org/9195704 –

+0

並呼應;其中的全部連接字符串是''redacted.redis.cache.windows.net,password = somebase64,ssl = True「' –

1

我有同樣的問題。請確保您正確複製密鑰:)

我的問題是我沒有正確地從UI中複製base 64編碼密鑰。考慮下面的兩個鍵。我通常複製/粘貼一個非斷開的字符串的方式是雙擊。當我雙擊密鑰時,我得到了第一組數據,而不是整個字符串。

8Rs0Uvx7aaaaaaaaTjaoTu11bz0qOm/o5E8dtWPXtrc= 
8Rs0Uvx7aaaaaaaaTjaoTu11bz0qOm