RPM*_*984 5 .net redis stackexchange.redis azure-redis-cache azure-web-app-service
警告:好的,所以这是一个奇怪的地方,我不确定 SO 是否是正确的地方。
我有一个连接到 Azure Redis 缓存实例的 Azure 网站。(使用 StackExchange.Redis)
一切都很好,然后有一天 - 该网站无法连接到 Redis。
错误:
无法连接到 redis 服务器;要创建断开连接的多路复用器,请禁用 AbortOnConnectFail。PING 上的 SocketFailure
这是我的连接字符串:
mycache.redis.cache.windows.net,ssl=true,password=xxxxxx,syncTimeout=5000
以下是我的诊断步骤:
所以 - 我在想 Redis 已将 Azure 网站“列入黑名单”?(这甚至可能吗?)我知道客户端(我的代码)不会尝试继续重新连接,但我已经多次访问该站点,但它无法重新连接到 Redis。
启动一个新的Azure 网站,使用相同的代码连接到同一个 Redis 实例会成功,这一事实告诉我,Azure/Redis 中出现了某种黑名单/路由问题。
有任何想法吗?
编辑
看起来问题出在 Azure VNET 上。当我的网站是 Azure 虚拟网络的一部分时,它无法连接到 Redis。但是当我把它从网络中取出时,它连接正常。在今天之前,此设置运行良好。
所以我想知道 Azure 是否进行了更改,以便 VNET 中的网站无法连接到 Azure Redis?(我知道毫无意义)
编辑 2:
附件是 Redis 连接尝试的日志。
异常:无法连接到 redis 服务器;要创建断开连接的多路复用器,请禁用 AbortOnConnectFail。SocketFailure on PING connection-string-removed :6380,password= password-removed ,ssl=True Connecting connection-string-removed :6380/Interactive... BeginConnect: connection-string-removed :6380 指定了 1 个唯一节点请求平局从连接字符串删除:6380
__Booksleeve_TieBreak... 允许端点 00:00:05 响应...等待任务完成,IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=4,Free=32763 ,Min=1,Max=32767) 并非所有任务都干净利落地完成,IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=5,Free=32762,Min=1, Max=32767) connection-string-removed :6380 没有响应 Awaiting task completion, IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=5,Free=32762,Min =1,Max=32767) 并非所有任务都干净利落地完成,IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=5,Free=32762,Min=1,Max= 32767)连接字符串删除:6380 未能提名 (WaitingForActivation) 未检测到连接字符串删除的主节点 :6380: 独立版 v2.0.0,大师;保持活动:00:01:00;int:连接;子:连接;未使用:DidNotRespond连接字符串删除:6380:int ops=0,qu=2,qs=0,qc=0,wr=0,socks=1;sub ops=0, qu=0, qs=0, qc=0, wr=0, socks=1 循环操作计数快照;int: 0 (0.00 ops/s; spans 10s); sub: 0 (0.00 ops/s; spans 10s) 同步超时: 0; 开火即忘:0;最后一次心跳:-1s 前重置失败的连接以重试...重试;剩余尝试次数:2... 1 个指定的唯一节点 请求从连接字符串中删除的tie-break :6380 > __Booksleeve_TieBreak... 允许端点 00:00:05 响应...等待任务完成,IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=6, Free=32761,Min=1,Max=32767) 并非所有任务都干净利落地完成,IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=7,Free=32760,Min =1,Max=32767) connection-string-removed :6380 没有响应 Awaiting task completion, IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=7,Free= 32760,Min=1,Max=32767) 并非所有任务都干净利落地完成,IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=7,Free=32760,Min=1 ,Max=32767) connection-string-removed :6380 提名失败 (WaitingForActivation) 没有检测到连接字符串移除的主人 :6380: 独立版 v2.0.0,大师;保持活动:00:01:00;int:连接;子:连接;未使用:DidNotRespond connection-string-removed :6380: int ops=0, qu=2, qs=0, qc=0, wr=0, async=3, socks=2; sub ops=0, qu=0, qs=0, qc=0, wr=0, socks=2 循环操作计数快照;int: 0 (0.00 ops/s; spans 10s); sub: 0 (0.00 ops/s; spans 10s) 同步超时: 0; 开火即忘:0;最后一次心跳:-1s 前重置失败的连接以重试...重试;剩余尝试次数:1... 1 个唯一节点指定从连接字符串移除请求 tie-break :6380 > __Booksleeve_TieBreak... 允许端点 00:00:05 响应...等待任务完成,IOCP: (Busy=0 ,Free=1000,Min=1,Max=1000), WORKER: (Busy=8,Free=32759,Min=1,Max=32767) EndConnect: connection-string-removed :6380 (socket shutdown) 连接完成:connection-string-removed :6380 所有任务干净利落地完成,IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy) =11,Free=32756,Min=1,Max=32767) connection-string-removed :6380 faulted: SocketFailure on PING Awaiting task completion, IOCP: (Busy=0,Free=1000,Min=1,Max=1000) , WORKER: (Busy=11,Free=32756,Min=1,Max=32767) 不是所有的任务都完成得很干净,IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy) =7,Free=32760,Min=1,Max=32767) connection-string-removed :6380 提名失败 (WaitingForActivation) 没有检测到主节点 connection-string-removed:6380: 独立版 v2.0.0,大师;保持活动:00:01:00;int:连接;子:连接;未使用:DidNotRespond连接字符串删除:6380:int ops=0,qu=2,qs=0,qc=0,wr=0,async=7,socks=3;sub ops=0, qu=0, qs=0, qc=0, wr=0, socks=3 循环操作计数快照;int: 0 (0.00 ops/s; spans 10s); sub: 0 (0.00 ops/s; spans 10s) 同步超时: 0; 开火即忘:0;最后一次心跳:-1s 前
谁能破译这个?
小智 2
我来自 Azure Web Apps 团队 - 看起来您的 VNET 进入了一种特别奇怪的状态,并且正在中断您的应用程序的网络连接。我已经修复了这个行为。
对于给您带来的不便,我们深表歉意...