我们最近已经开始使用aspnet提供程序来使用ASP.NET web应用程序,使用框架V4.7.2。我们得到了无法解释的超时。我们一直在与企业redis合作,在redis服务器上似乎还没有任何东西来解释这些信息。这些错误每次以2-10组的形式出现。在应用程序机器上没有显著的负载,在redis机器上也没有显著的负载。下面是来自应用程序错误的堆栈
==-- Error --==
Assembly : AppName, Version=2014.2.1.1, Culture=neutral, PublicKeyToken=null
Type : AppName.Global
ThreadID : 22
MessageID :
Source : StackExchange.Redis
Method : T ExecuteSyncImpl[T](StackExchange.Redis.Message, StackExchange.Redis.ResultProcessor`1[T], StackExchange.Redis.ServerEndPoint)
Date : 2022-05-31
Time : 21:11:21.6051
DateTime : 2022-05-31 21:11:21.6051
Computer : MachineName
Error : Timeout performing EVAL (5000ms), next: EVAL, inst: 0, qu: 0, qs: 0, aw: False, bw: SpinningDown, rs: ReadAsync, ws: Idle, in: 131072, serverEndpoint: redis-path:port, mc: 1/1/0, mgr: 9 of 10 available, clientName: MachineName(SE.Redis-v2.5.61.22961), IOCP: (Busy=2,Free=998,Min=400,Max=1000), WORKER: (Busy=2,Free=32765,Min=400,Max=32767), v: 2.5.61.22961 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts)
Stack Trace : at StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Message message, ResultProcessor`1 processor, ServerEndPoint server) in /_/src/StackExchange.Redis/ConnectionMultiplexer.cs:line 1857
at StackExchange.Redis.RedisBase.ExecuteSync[T](Message message, ResultProcessor`1 processor, ServerEndPoint server) in /_/src/StackExchange.Redis/RedisBase.cs:line 53
at StackExchange.Redis.RedisDatabase.ScriptEvaluate(String script, RedisKey[] keys, RedisValue[] values, CommandFlags flags) in /_/src/StackExchange.Redis/RedisDatabase.cs:line 1212
at Microsoft.Web.Redis.StackExchangeClientConnection.<>c__DisplayClass7_0.<Eval>b__0()
at Microsoft.Web.Redis.StackExchangeClientConnection.OperationExecutor(Func`1 redisOperation)
at Microsoft.Web.Redis.StackExchangeClientConnection.RetryLogic(Func`1 redisOperation)
at Microsoft.Web.Redis.StackExchangeClientConnection.Eval(String script, String[] keyArgs, Object[] valueArgs)
at Microsoft.Web.Redis.RedisConnectionWrapper.TryTakeWriteLockAndGetData(DateTime lockTime, Int32 lockTimeout, Object& lockId, ISessionStateItemCollection& data, Int32& sessionTimeout)
at Microsoft.Web.Redis.RedisSessionStateProvider.GetItemFromSessionStore(Boolean isWriteLockRequired, HttpContextBase context, String id, CancellationToken cancellationToken, Boolean& locked, TimeSpan& lockAge, Object& lockId, SessionStateActions& actions)
at Microsoft.Web.Redis.RedisSessionStateProvider.<GetItemExclusiveAsync>d__20.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.AspNet.SessionState.SessionStateModuleAsync.<GetSessionStateItemAsync>d__74.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNet.SessionState.SessionStateModuleAsync.<AcquireStateAsync>d__65.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNet.SessionState.TaskAsyncHelper.EndTask(IAsyncResult ar)
at System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Build: 5/27/2022 3:10:56 PM
Url: TheUrlCausingTheRequestThatFailed
Message: Timeout performing EVAL (5000ms), next: EVAL, inst: 0, qu: 0, qs: 0, aw: False, bw: SpinningDown, rs: ReadAsync, ws: Idle, in: 131072, serverEndpoint: redis-path:port, mc: 1/1/0, mgr: 9 of 10 available, clientName: MachineName(SE.Redis-v2.5.61.22961), IOCP: (Busy=2,Free=998,Min=400,Max=1000), WORKER: (Busy=2,Free=32765,Min=400,Max=32767), v: 2.5.61.22961 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts)
==-------------------------------------------------------------------==我们不能在任何较低的环境中重新创建这个错误,但是我们的自动化测试似乎一致地产生了错误。我们已经尝试了错误中提供的链接中的建议。谁有类似的经验或配置建议?有人愿意使用Redis作为自定义会话状态提供程序来共享.net应用程序的配置设置吗?
发布于 2022-06-08 19:47:11
我们最终确定我们有一个编程错误,并且我们有一个超过21 We的会话。当进程超时时,我们得到了这个错误,试图将那个大会话流回会话提供程序。我们已经纠正了导致大会话的问题,超时时间已经过去。
https://stackoverflow.com/questions/72456031
复制相似问题