2

我运行一个测试应用程序,它通过以下方式连接到 Redis 服务器:

var options = new ConfigurationOptions();
options.AbortOnConnectFail = false;
options.EndPoints.Add(Settings.HostName + ":" + Settings.Port);

Connection = ConnectionMultiplexer.Connect(options);
Connection.ConnectionFailed += (sender, args) => SystemMessageCallback(new SystemMessage(SystemMessageType.Error, "Connection to Redis Server failed: " + args.Exception.Message));
Connection.ConnectionRestored += (sender, args) => SystemMessageCallback(new SystemMessage(SystemMessageType.Error, "Connection to Redis Server restored: " + args.Exception.Message));

if (!IsConnected())
{
    SystemMessageCallback(new SystemMessage(SystemMessageType.Error, "Connection to Redis Server failed"));
}

当我现在关闭服务器时(当我的客户端仍在运行时),我收到以下错误消息:

与 Redis 服务器的连接失败:127.0.0.1:6379/Interactive 上的 SocketFailure,输入缓冲区:0,未完成:0,最后读取:9 秒前,最后写入:9 秒前,保持活动:-1 秒,待处理:0 , state: ConnectedEstablished, last-heartbeat: 0s ago, last-mbeat: 0s ago, global: 0s ago

一切都按预期进行(我无法评论上面的确切错误消息内容,因为它来自 StackExchange.Redis 内部)但是当我重新启动服务器时,客户端不再从服务器关闭中恢复,回调不会在Connection.ConnectionRestored. 有什么我做错了吗?

我的 C# 客户端是 StackExchange.Redis 版本 1.0.242.0 (v4.0.30319),我运行的是 MS Open Tech Group 的 2.8.4 版本,尽管我怀疑错误来自 StackExchange.Redis。

4

0 回答 0