C# 使用StackExchange.Redis时出现超时异常的原因可能是什么?
在运行Azure应用程序服务的ASP.NET应用程序中,我在Azure Redis上使用C# 使用StackExchange.Redis时出现超时异常的原因可能是什么?,c#,azure,redis,stackexchange.redis,azure-redis-cache,C#,Azure,Redis,Stackexchange.redis,Azure Redis Cache,在运行Azure应用程序服务的ASP.NET应用程序中,我在Azure Redis上使用StackExchange.Redis 1.2.0.0执行操作时,不时遇到此错误: 超时执行存在书签:afad5065-29b1-48c7-8bbc-38ddcc9ab4eType:1,inst:1,mgr:Inactive,err:never,queue:3,qu:0,qs:3,qc:0,wr:0,wq:0,in:0,ar:0,clientName:mywebapp,serverEndpoint:Unspe
StackExchange.Redis 1.2.0.0
执行操作时,不时遇到此错误:
超时执行存在书签:afad5065-29b1-48c7-8bbc-38ddcc9ab4eType:1,inst:1,mgr:Inactive,err:never,queue:3,qu:0,qs:3,qc:0,wr:0,wq:0,in:0,ar:0,clientName:mywebapp,serverEndpoint:Unspecified/myapp.redis.cache.windows.net:6380,keyHashSlot:8377,IOCP:(Busy=1,Free=999,Min=200,Max=1000),WORKER:(忙=1,空闲=32766,最小=200,最大=32767),本地CPU:不可用(请参阅本文了解一些可能导致超时的常见客户端问题:)System.TimeoutException
使用以下配置连接:allowAdmin=true、ssl=true、abortConnect=false、connectTimeout=5000、syncTimeout=2000
客户机和Redis服务在这段时间内都没有高负载。
我已经读过,但仍然不知道是什么原因导致了这些问题。如果您能提供帮助,我们将不胜感激。超时可能是由或性能问题引起的,因此您必须从两方面来确定是什么原因导致了应用程序超时
需要考虑的一些事项:
- 查看azure门户中的客户端或服务器端性能计数器时,请注意查看相对较小的时间窗口(例如1小时)。这一点很重要,因为当您缩小到较长的时间窗口时,门户会聚集值,这可能会隐藏短期的负载峰值
- 许多性能计数器是通过采样而不是连续监视捕获的,因此负载峰值可能不够长,无法在门户中显示。例如,如果每15秒记录一次CPU使用情况,但CPU峰值仅为5秒,则它可能在采样之间发生,并且不会被看到。这就是StackExc的原因Redis试图捕获即将抛出超时时的瞬时CPU使用情况。不幸的是,某些环境不允许访问系统性能计数器-因此“本地CPU:不可用”超时错误中的消息。要解决此问题,您可以在超时发生时尝试捕获进程的转储。转储通常包含转储时的CPU信息
如果您仍然看不到任何问题的明确迹象,请打开Azure的支持案例,他们将帮助您进行调查。您是否查看了专门针对Azure Redis的Azure文档?我将从这里开始:您有到Redis的网络流量吗?所有端口都打开了吗?您的IP是否位于Redis ACL上?如果配置了。@AndySinclair,是的,我已经完成了我从那篇文章中得到了一些建议,但没有成功。我觉得我在这一切中遗漏了一些微妙之处。