我们在ServiceStack.Redis v4.0.48中收到以下错误
System.IndexOutOfRangeException:索引超出了数组的范围。 在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) 在ServiceStack.Auth.AuthenticateService.Post(验证请求) at ServiceStack.Host.ServiceRunner`1.Execute(IRequest request,Object instance,TRequest requestDto)
我们尝试将池数量增加到128个(跨3个实例),但这并没有解决。希望吸引那些遇到过这种情况的人的注意力,并为可能发生的事情提供一些方向......
请告诉我诊断所需的其他信息。
答案 0 :(得分:1)
从@mythz升级到4.0.52的第一条评论最终是解决方案,但重要的是要注意升级会改变Redis配置的行为 - 特别是因为它与Redis连接字符串有关。
for 4.0.52无论如何,您必须在RedisConfig上设置默认值(例如RedisConfig.DefaultRetryTimeout),即使您在连接字符串中设置了等效值。