最近,我开始将job processor从Node.js转换到.net核心,并选择使用ServiceStack.Redis来管理到Redis的连接。
令人恼火的是,如果不抛出异常,我就无法让它连接到托管Redis。这个错误到底是什么意思,有什么线索吗?
var redisManager = new BasicRedisClientManager(0,Environment.GetEnvironmentVariable("REDIS"));
var redis = redisManager.GetClient();Unhandled exception. ServiceStack.Redis.RedisResponseException: unknown command `ROLE`, with args beginning with:
at ServiceStack.Redis.RedisNativeClient.ReadComplexResponse() in C:\BuildAgent\work\b2a0bfe2b1c9a118\src\ServiceStack.Redis\RedisNativeClient_Utils.cs:line 1075
at ServiceStack.Redis.RedisNativeClient.SendReceive[T](Byte[][] cmdWithBinaryArgs, Func`1 fn, Action`1 completePipelineFn, Boolean sendWithoutRead) in C:\BuildAgent\work\b2a0bfe2b1c9a1
18\src\ServiceStack.Redis\RedisNativeClient_Utils.cs:line 616
at ServiceStack.Redis.RedisNativeClient.SendExpectComplexResponse(Byte[][] cmdWithBinaryArgs) in C:\BuildAgent\work\b2a0bfe2b1c9a118\src\ServiceStack.Redis\RedisNativeClient_Utils.cs:l
ine 744
at ServiceStack.Redis.RedisNativeClient.Role() in C:\BuildAgent\work\b2a0bfe2b1c9a118\src\ServiceStack.Redis\RedisNativeClient.cs:line 846
at ServiceStack.Redis.RedisClient.GetServerRole() in C:\BuildAgent\work\b2a0bfe2b1c9a118\src\ServiceStack.Redis\RedisClient.cs:line 1065
at ServiceStack.Redis.RedisResolver.CreateRedisClient(RedisEndpoint config, Boolean master) in C:\BuildAgent\work\b2a0bfe2b1c9a118\src\ServiceStack.Redis\RedisResolver.cs:line 84
at ServiceStack.Redis.RedisResolver.CreateMasterClient(Int32 desiredIndex) in C:\BuildAgent\work\b2a0bfe2b1c9a118\src\ServiceStack.Redis\RedisResolver.cs:line 148
at ServiceStack.Redis.BasicRedisClientManager.GetClient() in C:\BuildAgent\work\b2a0bfe2b1c9a118\src\ServiceStack.Redis\BasicRedisClientManager.cs:line 104发布于 2020-02-05 18:55:09
任何其他人都会被这个问题困扰,特别是如果你使用的是来自DigitalOcean的托管REDIS。
本质上,角色命令(以及其他命令)不可用,因此在此库中,您必须设置以下标志。
RedisConfig.VerifyMasterConnections = false;https://stackoverflow.com/questions/60020116
复制相似问题