我收到此错误。有什么工作?
无法连接到redis实例127.0.0.1:6379>>堆栈跟踪 : ServiceStack.Redis.RedisNativeClient.RedisNativeClient.RedisNativeClient上的ServiceStack.Redis.RedisNativeClient.Connect() ServiceStack.Redis.RedisNative的ServiceStack.Redis.RedisNativeClient.SendCommand(Byte [] [] cmdWithBinaryArgs) ServiceStack.Redis.RedisClientList.GetEnumerator()a中的Client.SendExpectLong(Byte [] [] cmdWithBinaryArgs) t Common.Tools.RedisDBHelper.checkListInt(String myKey,Int32 id)>>内部异常:消息:没有连接 ld是因为目标机器主动拒绝它127.0.0.1:6379 >>内部异常:stacktrace:在S System.Net.Sockets.Socket.Connect(Stri)中的ystem.Net.Sockets.Socket.Connect(IPAddress []地址,Int32端口) ServiceStack.Redis.RedisNativeClient.Connect()上的ng host,Int32 port)CurrentStack:在System.Environment。 Common.Tools.E上System.Environment.get_StackTrace()的GetStackTrace(异常e,布尔needFileInfo) Common.Tools.RedisDBHelper.checkListInt(String中的xtensionHelper.saveAsDebug(Exception myEx,String aciklama) myKey,Int32 id)
答案 0 :(得分:1)
我认为可能是Redis忙碌了。然后我认为这是ServiceStack。但最终,Windows中的TCP发布速度不够快。在条目的值到期之前,TCP不会释放已关闭的连接。我将TcpTimeWaitDelay设置为45秒。 http://technet.microsoft.com/en-us/library/cc938217.aspx并设置MaxUserPort http://mashijie.blogspot.com/2009/05/change-default-setting-of-tcp-ports.html
将端口范围调整为1025-64511
确保重新启动Windows
答案 1 :(得分:0)
当RedisClient无法创建TCP连接时会发生这种情况。抛出异常就是这里的正确行为。
答案 2 :(得分:0)
我自己有这个问题。 你使用Redis的二进制文件(从什么来源,GitHub,非官方版本?)
我找到的原因是: 这实际上是Redis的说法,它无法创建连接。 (因为提供的痕迹也解释了) 应该是一个更明确的例外,它解释说这是来自Redis,而不是防火墙或任何恕我直言。
我的猜测是你在x64架构上运行32位构建的二进制文件。
如果您从链接下载版本:MsOpenTech Group 并使用MS C编译器(如免费的VS 2012 Express)构建它,您应该能够运行生成的二进制文件而不会出现此问题。
不能做出任何承诺,但这对我有用。
编辑:另外,请确保启动redis-server(以管理员身份)并在防火墙中提供必要的权限,否则您将无法使用服务器连接redis-cli客户端!