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

C# 无法连接到redis服务器;要创建断开连接的多路复用器,请禁用AbortOnConnectFail。PING上的SocketFailure,c#,asp.net,azure,redis,stackexchange.redis,C#,Asp.net,Azure,Redis,Stackexchange.redis,我试图做一个从azure redis缓存读写的简单示例,但我发现了这个错误 StackExchange.Redis.RedisConnectionException类型的异常发生在StackExchange.Redis.dll中,但未在用户代码中处理 其他信息:无法连接到redis服务器;要创建断开连接的多路复用器,请禁用AbortOnConnectFail。PING上的SocketFailure 我使用的代码是,我更改了dns和密码 // Get Connection instance Con

我试图做一个从azure redis缓存读写的简单示例,但我发现了这个错误

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

其他信息:无法连接到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();

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


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

我遇到了完全相同的异常,结果证明是公司防火墙,它正在阻止端口6379、6380

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

这可能是重复的注释:6380端口用于SSL。6379端口用于非SSL连接。此外,请尝试在此处检查解决方案: