ServiceStack.Redis Невозможно подключиться к экземпляру Redis, управляемому Digitalocean. - PullRequest
0 голосов
/ 01 февраля 2020

Недавно я начал преобразовывать процессор заданий из ядра 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

1 Ответ

0 голосов
/ 05 февраля 2020

Любой другой может застрять в этом, в частности, если вы используете Managed REDIS из DigitalOcean.

По существу, команда ROLE (и, возможно, другие) недоступна, поэтому в этой библиотеке вы должны установить следующее флаг.

RedisConfig.VerifyMasterConnections = false;
...