ServiceStack.Redis.RedisPoolManagerPool.GetClient() - IndexOutOfRangeException
ServiceStack.Redis.RedisPoolManagerPool.GetClient() - IndexOutOfRangeException
我们在 ServiceStack.Redis v4.0.48
中收到以下错误
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at ServiceStack.Redis.RedisManagerPool.GetClient()
at ServiceStack.Redis.RedisClientManagerCacheClient.Set[T](String key, T value, TimeSpan expiresIn)
at ServiceStack.ServiceExtensions.CacheSet[T](ICacheClient cache, String key, T value, Nullable1 expiresIn)
at ServiceStack.ServiceStackHost.OnSaveSession(IRequest httpReq, IAuthSession session, Nullable
1 expiresIn)
at ServiceStack.Auth.OAuthProvider.Authenticate(IServiceBase authService, IAuthSession session, Authenticate request)
at ServiceStack.Auth.AuthenticateService.Authenticate(Authenticate request, String provider, IAuthSession session, IAuthProvider oAuthConfig)
at ServiceStack.Auth.AuthenticateService.Post(Authenticate request)
at ServiceStack.Host.ServiceRunner`1.Execute(IRequest request, Object instance, TRequest requestDto)
我们已尝试将池计数增加到 128(跨越 3 个实例),但没有解决。希望引起遇到这种情况的人的注意,并能就可能发生的事情提供一些指导......
请告诉我诊断需要哪些额外信息。
从@mythz 升级到 4.0.52 的第一条评论最终是解决方案,但重要的是要注意升级会改变 Redis 配置的行为 - 特别是因为它与 Redis 连接字符串相关。
无论如何,对于 4.0.52,您必须在 RedisConfig 上设置默认值(例如 RedisConfig.DefaultRetryTimeout),即使您在连接字符串中设置了等效值也是如此。
我们在 ServiceStack.Redis v4.0.48
中收到以下错误System.IndexOutOfRangeException: Index was outside the bounds of the array. at ServiceStack.Redis.RedisManagerPool.GetClient() at ServiceStack.Redis.RedisClientManagerCacheClient.Set[T](String key, T value, TimeSpan expiresIn) at ServiceStack.ServiceExtensions.CacheSet[T](ICacheClient cache, String key, T value, Nullable
1 expiresIn) at ServiceStack.ServiceStackHost.OnSaveSession(IRequest httpReq, IAuthSession session, Nullable
1 expiresIn) at ServiceStack.Auth.OAuthProvider.Authenticate(IServiceBase authService, IAuthSession session, Authenticate request) at ServiceStack.Auth.AuthenticateService.Authenticate(Authenticate request, String provider, IAuthSession session, IAuthProvider oAuthConfig) at ServiceStack.Auth.AuthenticateService.Post(Authenticate request) at ServiceStack.Host.ServiceRunner`1.Execute(IRequest request, Object instance, TRequest requestDto)
我们已尝试将池计数增加到 128(跨越 3 个实例),但没有解决。希望引起遇到这种情况的人的注意,并能就可能发生的事情提供一些指导......
请告诉我诊断需要哪些额外信息。
从@mythz 升级到 4.0.52 的第一条评论最终是解决方案,但重要的是要注意升级会改变 Redis 配置的行为 - 特别是因为它与 Redis 连接字符串相关。
无论如何,对于 4.0.52,您必须在 RedisConfig 上设置默认值(例如 RedisConfig.DefaultRetryTimeout),即使您在连接字符串中设置了等效值也是如此。