Я сталкиваюсь с этой ошибкой очень редко (пару раз в месяц) и испытываю трудности с ее воспроизведением.Так что я надеюсь, что кто-то видел это раньше и, возможно, сможет предоставить некоторую информацию.
Я работаю на ServiceStack v3.9.x (последний перед выходом в продажу).По многим причинам я не могу продвинуть наши зависимости вперед и поэтому должен оставаться в этой версии.И подключение к Amazon ElastiCache для Redis v3.2.10.
Я использую два PooledRedisClientManager, хранящихся в статических переменных.Каждый вызов для установки / получения значений или публикации сообщения заключен в оператор использования и вызов GetClient.
using (var client = ClientManager.GetClient())
return client.PublishMessage(toChannel, message);
Кроме того, я также создал широковещательный паб / суб API.Подчасть построена вокруг одного потока на подписку с открытой RedisSubscription и RedisClient.
Из того, что я могу сказать, ничто не говорит о совместном использовании экземпляра IRedisClient между потоками.
Вот также настройки PooledRedisClientManager, которые я использую ...
- Один хост.
- MaxWritePoolSize = 10
- MaxReadPoolSize = 10
- PoolTimeout = 2 (секунды)
- ConnectTimeout = 0
- SocketSendTimeout = -1 // бесконечное время ожидания.
- SocketReceiveTimeout = -1 // бесконечное время ожидания.
- IdleTimeOutSecs = 300