Nginx 信号重复响应

Nginx 信号重复响应,nginx,load,duplicates,signalr,Nginx,Load,Duplicates,Signalr,我将SignalR与Redis一起用作服务器上的消息总线,该服务器位于Nginx代理之后,用于负载平衡。我使用SignalR的PersistentConnection类编写了一个简单的聊天程序,向属于同一特定组的用户广播消息。用户在OnConnectedAsync中添加到组,在OnDisconnectedAsync中删除,并且用户到组的映射是确定的 目前,无论出于何种原因(我不完全确定原因),客户端都会返回到长轮询,每当客户端在等待并接收响应后建立新连接时(似乎是随机的),服务器有时会立即使用以

我将SignalR与Redis一起用作服务器上的消息总线,该服务器位于Nginx代理之后,用于负载平衡。我使用SignalR的PersistentConnection类编写了一个简单的聊天程序,向属于同一特定组的用户广播消息。用户在OnConnectedAsync中添加到组,在OnDisconnectedAsync中删除,并且用户到组的映射是确定的

目前,无论出于何种原因(我不完全确定原因),客户端都会返回到长轮询,每当客户端在等待并接收响应后建立新连接时(似乎是随机的),服务器有时会立即使用以前的响应响应来响应新连接,尽管只有一个职位

消息ID往往相差正好一个(较小的ID排在第一位),其余响应保持不变。我记录了一些调试信息,并且非常肯定我对OnReceivedAsync的覆盖正在为每个请求发送一个响应。我在没有Redis消息总线的情况下尝试了相同的实现,但也遇到了同样的问题。然而,本地运行(长轮询)产生了良好的结果,因此我怀疑问题可能在于消息总线缓冲消息的方式,以刷新可能没有被捕获的客户端,以及切断/设置与Nginx负载平衡器的连接的一些奇怪的时间,但除此之外,我非常不知所措

任何帮助都将不胜感激

编辑:进一步的调查显示,复制是以大约20-30秒的固定间隔发生的。我相信消息总线中的消息过期可能与错误有关

编辑:可以在此处看到错误:

服务器只是在广播客户端发送的计数器。您会注意到一些响应每隔20个左右就重复一次。

将IIS(6.0)服务器管理器中的工作进程数从2个减少到1个解决了此问题

在github上使用repo和repo步骤提交问题。在本地复制错误时遇到问题。我会在我有能力的时候提交一份报告。