Внезапно мы начали получать ниже упомянутое исключение при нажатии Redis Cache (AWS). Раньше он работал нормально. Мы видели, что количество текущих подключений для узла Redis продолжает расти.

Исключение «Нет доступного подключения» при доступе к redis. Ниже приведено исключение: «Нет доступного подключения для обслуживания этой операции: GET xxxxx; SocketClosed на xxxxx/Interactive, происхождение: ProcessReadBytes, буфер ввода: 0, ожидание: 0, последнее чтение: 69 с назад, последняя запись: 69 с назад, запись без ответа: 2630 с назад, поддержка активности: 60 с, ожидание: 0 , состояние: ConnectedEstablished, in: 0, ar: 0, last-heartbeat: 0 с назад, last-mbeat: 0 с назад, глобально: 0 с назад: RedisConnectionException at StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T] (сообщение сообщения, процессор ResultProcessor1 , сервер ServerEndPoint) в c:\code\StackExchange.Redis\StackExchange.Redis\StackExchange\Redis\ConnectionMultiplexer.cs:строка 2027 в StackExchange.Redis.RedisBase.ExecuteSync[T](сообщение сообщения, процессор ResultProcessor1, сервер ServerEndPoint) в c:\code\StackExchange.Redis\StackExchange.Redis\StackExchange\Redis\RedisBase.cs:строка 81 в StackExchange.Redis.RedisDatabase.StringGet(ключ RedisKey, флаги CommandFlags) в c:\code\StackExchange.Redis\StackExchange. Redis\StackExchange\Redis\RedisDatabase.cs:строка 1647 в CachingFramework.Redis.Providers.RedisCachePr ovider.GetObject[T](строковый ключ) в NetCoreUtilities.CachedUserObjectRedis.Get() в /codebuild/output/src803013914/src/NetCoreUtilities/CachedObjects/CachedUserObject.cs:строка 63 в NetCoreUtilities.CachedUserObject.GetCachedUserObject(ElasticacheHelper elasticacheHelper, Int64 userID ) в /codebuild/output/src803013914/src/NetCoreUtilities/CachedObjects/CachedUserObject.cs:строка 82 в GetChildCategoriesAndAssets.Function.FunctionHandler(ввод JObject, контекст ILambdaContext) в /codebuild/output/src803013914/src/DIT Framework/users/GetChildAssetCate .cs: ​​строка 54 в lambda_method (Closure, Stream, Stream, LambdaContextInternal)"

Мы используем .Net framework 4.5 и StackExchange.Redis 1.2.1, мы пытались использовать последнюю версию StackExchange.Redis, но похоже, что она не поддерживает .Net framework 4.5.

Что нам делать, не меняя текущую .Net Framework Приложения? Спасибо.

4
Mahesh Waghmare 19 Ноя 2019 в 15:25
1
Вы смогли это решить? Пожалуйста, ваша работа, если вы сделали
 – 
hiFI
12 Дек 2019 в 13:51

1 ответ

Да, проблема на данный момент решена.

В старой версии Redis есть проблема, которая, несмотря на установленное время ожидания, не закрывает соединения.

  1. Обновлена ​​версия Redis в консоли AWS. (Redis5.0)
  2. Версия CachingFramework.Redis обновлена ​​до 11.1.0.
  3. Библиотека StackExchange.Redis обновлена ​​до 2.0.601.
  4. Установите значение тайм-аута для группы параметров обратно на 0 (по умолчанию).

Примечание. Для этого мы также обновили .Net Framework.

0
Mahesh Waghmare 16 Дек 2019 в 14:07
1
На самом деле нет, это не решено, это постоянная ошибка, но она должна быть скоро. См.: github.com/StackExchange/StackExchange.Redis/pull/137.
 – 
Steve
13 Мар 2020 в 15:45