无法连接到redis服务器; 要创建断开连接的多路复用器,请禁用AbortOnConnectFail.PING上的SocketFailure

Lui*_*cia 6 c# asp.net azure redis stackexchange.redis

我试图做一个从azure redis缓存读取和写入的简单示例,我得到这个错误

StackExchange.Redis.dll中出现"StackExchange.Redis.RedisConnectionException"类型的异常,但未在用户代码中处理

附加信息:无法连接到redis服务器; 要创建断开连接的多路复用器,请禁用AbortOnConnectFail.PING上的SocketFailure

我正在使用的代码就是这个,我更改了dns和密码

// Get Connection instance
ConnectionMultiplexer connection = ConnectionMultiplexer
    .Connect("xx.redis.cache.windows.net,ssl=false,password=...");
// Get database
IDatabase databaseCache = connection.GetDatabase();
// Add items
databaseCache.StringSet("foo1", "1");
databaseCache.StringSet("foo2", "2");
// Add items with experation value
databaseCache.StringSet("foo3", "3", TimeSpan.FromMinutes(20));

Stopwatch sw = new Stopwatch();

sw.Start();

// Get item value
string foo1Value = databaseCache.StringGet("foo1");

sw.Stop();

Console.WriteLine("Elapsed={0}", sw.Elapsed);
return View();
Run Code Online (Sandbox Code Playgroud)

Mik*_*der 7

Azure Redis缓存仅默认启用SSL端点.最安全的方法是在调用ConnectionMultiplexer.Connect()时设置"ssl = true".

或者,您可以使用Azure门户在Azure Redis缓存上启用非SSL端点,但随后您的密码和所有数据将以明文形式发送.


yan*_*taq 5

我有完全相同的例外,它原来是公司防火墙,它阻止端口6379,6380.

我在公司网络外的环境中复制了我的测试控制台应用程序并且连接成功.因此,如果Redis服务器在Internet上运行且您的网络位于防火墙后面,请确保端口已打开.