首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >很少负载时发生的超时

很少负载时发生的超时
EN

Stack Overflow用户
提问于 2022-06-01 03:03:21
回答 1查看 194关注 0票数 0

我们最近已经开始使用aspnet提供程序来使用ASP.NET web应用程序,使用框架V4.7.2。我们得到了无法解释的超时。我们一直在与企业redis合作,在redis服务器上似乎还没有任何东西来解释这些信息。这些错误每次以2-10组的形式出现。在应用程序机器上没有显著的负载,在redis机器上也没有显著的负载。下面是来自应用程序错误的堆栈

代码语言:javascript
复制
==-- 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应用程序的配置设置吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-08 19:47:11

我们最终确定我们有一个编程错误,并且我们有一个超过21 We的会话。当进程超时时,我们得到了这个错误,试图将那个大会话流回会话提供程序。我们已经纠正了导致大会话的问题,超时时间已经过去。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72456031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档