Azure Redis无法连接到Redis服务器。

4

我正在使用StackExchange.Redis.StrongName 1.0.394,并尝试连接到我的Azure Redis,但当我运行我的项目时,一直出现以下错误:

RedisConnectionException: It was not possible to connect to the redis server(s); 
to create a disconnected multiplexer, disable AbortOnConnectFail. SocketFailure on PING

奇怪的是,如果我使用 StackExchange.Redis 1.0.394 ,一切都能正常工作,但是我需要 StrongName 版本才能使用 RedisSessionStateProvider。

以下是连接到 Redis 的代码:

private static ConnectionMultiplexer Connection
    {
        get
        {
            if (_connection == null || !_connection.IsConnected)
            {
                var config = new ConfigurationOptions();
                config.EndPoints.Add("myredisname.redis.cache.windows.net");
                config.Password = "myverylongkey";
                //in ms
                config.SyncTimeout = 5000;
                config.Ssl = true;
                config.AbortOnConnectFail = false;

                _connection = ConnectionMultiplexer.Connect(config);
            }

            return _connection;
        }
    }

我使用了您上面粘贴的完全相同的代码,但无法重现该问题。它在StackExchange.Redis 1.0.394和StackExchange.Redis.StrongName 1.0.394中都可以正常工作。您能否分享一个可复现该问题的工作控制台应用程序项目? - Mike Harder
由于某种非常奇怪的原因,现在它对我来说可以工作了。当我看到你的评论后,我决定在当前项目上再试一次,然后创建控制台项目,所以我再次删除了StackExchange.Redis,并添加了StackExchange.Redis.StrongName,现在它可以工作了。我不知道为什么,之前我已经尝试过这个和其他几个方法,但现在它出乎意料地可以工作了。 - hyperN
1个回答

2
我遇到了完全相同的异常,后来发现是企业防火墙阻止了端口6379和6380。
我将测试控制台应用程序复制到公司网络之外的环境中,连接成功了。因此,如果Redis服务器在互联网上运行,而你的网络在防火墙后面,请确保这些端口是开放的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接