小编典典

无法通过StackExchange.Redis重新连接到Azure Redis

redis

警告 :好的,这很奇怪,我不确定SO是否合适。

我有一个Azure网站连接到Azure Redis缓存实例。(使用StackExchange.Redis)

一切都很好,然后有一天-该网站无法连接到Redis。

错误:

无法连接到Redis服务器。要创建断开的多路复用器,请禁用AbortOnConnectFail。PING上的SocketFailure

这是我的连接字符串:

mycache.redis.cache.windows.net,ssl = true,密码= xxxxxx,syncTimeout = 5000

这是我的诊断步骤:

  1. 尝试从本地连接到Azure Redis。结果:成功(代码好吗?)
  2. 尝试启动新的Azure Redis实例,从Azure连接。结果:失败(网站无法连接到任何Azure Redis实例?)
  3. 启动具有错误代码相同代码的新Azure网站,指向现有的Redis缓存。结果:成功(嗯,什么?)
  4. 归档新的MVC网站,添加StackExchange.Redis,部署到新的Azure网站,连接到Redis。结果:成功(所以Redis好吗?)
  5. 在香草MVC网站上方部署到 现有的 Azure网站(与4相同的代码,连接到相同的Redis,唯一的区别是它使用的是旧的Azure网站物理计算机/网络)。结果:FAIL(wtf ??)

所以-我认为Redis已将Azure网站“列入黑名单”?(甚至有可能吗?)我知道 客户端
(我的代码)不会尝试保持重新连接,但是我已经多次跳出该站点,并且它无法重新连接到Redis。

通过使用 相同的代码 连接到 相同的Redis实例分解 新的 Azure网站成功的事实告诉我,Azure /
Redis中出现了某种黑名单/路由问题。

有任何想法吗?

编辑

看起来问题出在Azure VNET。当我的网站是Azure虚拟网络的一部分时,它无法连接到Redis。但是,当我将其 网络中 取出
时,它可以正常连接。在今天之前,此设置运行良好。

因此,我想知道Azure是否进行了更改,以使VNET中的网站无法连接到Azure Redis?(我不知道)

编辑2

附件是来自Redis连接尝试的日志。

例外:无法连接到Redis服务器。要创建断开的多路复用器,请禁用AbortOnConnectFail。PING上的SocketFailure
已删除连接字符串 :6380,密码= 已删除密码 ,ssl = True连接 已删除连接字符串 :6380 /交互式…
BeginConnect: 已删除连接字符串 :6380指定了1个唯一的节点请求中断从 连接字符串删除 :6380

__Booksleeve_TieBreak… Allowing endpoints 00:00:05 to respond… Awaiting task completion, IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=4,Free=32763,Min=1,Max=32767) Not all tasks completed cleanly, IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=5,Free=32762,Min=1,Max=32767) connection-string-removed:6380 did not respond Awaiting task completion, IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=5,Free=32762,Min=1,Max=32767) Not all tasks completed cleanly, IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=5,Free=32762,Min=1,Max=32767) connection-string-removed:6380 failed to nominate (WaitingForActivation) No masters detected connection-string-removed:6380: Standalone v2.0.0, master; keep-alive: 00:01:00; int: Connecting; sub: Connecting; not in use: DidNotRespond connection-string-removed: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 Circular op-count snapshot; int: 0 (0.00 ops/s; spans 10s); sub: 0 (0.00 ops/s; spans 10s) Sync timeouts: 0; fire and forget: 0; last heartbeat: -1s ago resetting failing connections to retry… retrying; attempts left: 2… 1 unique nodes specified Requesting tie-break from connection-string-removed:6380 > __Booksleeve_TieBreak… Allowing endpoints 00:00:05 to respond… Awaiting task completion, IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=6,Free=32761,Min=1,Max=32767) Not all tasks completed cleanly, IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=7,Free=32760,Min=1,Max=32767) connection-string-removed:6380 did not respond Awaiting task completion, IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=7,Free=32760,Min=1,Max=32767) Not all tasks completed cleanly, IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=7,Free=32760,Min=1,Max=32767) connection-string-removed:6380 failed to nominate (WaitingForActivation) No masters detected connection-string-removed:6380: Standalone v2.0.0, master; keep-alive: 00:01:00; int: Connecting; sub: Connecting; not in use: 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 Circular op-count snapshot; int: 0 (0.00 ops/s; spans 10s); sub: 0 (0.00 ops/s; spans 10s) Sync timeouts: 0; fire and forget: 0; last heartbeat: -1s ago resetting failing connections to retry… retrying; attempts left: 1… 1 unique nodes specified Requesting tie-break from connection-string-removed:6380 > __Booksleeve_TieBreak… Allowing endpoints 00:00:05 to respond… Awaiting task completion, 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) Connect complete: connection-string-removed:6380 All tasks completed cleanly, 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) Not all tasks completed cleanly, IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=7,Free=32760,Min=1,Max=32767) connection-string-removed:6380 failed to nominate (WaitingForActivation) No masters detected connection-string-removed:6380: Standalone v2.0.0, master; keep-alive: 00:01:00; int: Connecting; sub: Connecting; not in use: DidNotRespond connection-string-removed: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 Circular op-count snapshot; int: 0 (0.00 ops/s; spans 10s); sub: 0 (0.00 ops/s; spans 10s) Sync timeouts: 0; fire and forget: 0; last heartbeat: -1s ago

有人可以破译吗?


阅读 749

收藏
2020-06-20

共1个答案

小编典典

我在Azure Web Apps团队中工作-看起来您的VNET进入了一种特别奇怪的状态,并且正在中断应用程序的网络连接。我已修复此问题。

给您带来的不便,我们深表歉意。

2020-06-20