Windows防火墙导致连接限制

我有一个应用程序运行在Win8.1(或WinServer2012,它没有区别)提供两个HTTP服务器侦听器在单独的进程(一个使用HTTP.SYS通过.NET HttpListener,另一个使用Microsoft OWIN和自托pipe的ASP.NET的WebAPI)。

防火墙已configuration允许规则,允许连接到两个服务器(通过基于TCP端口的规则)本地子网。

每个客户端连接到服务器的三个LongPoll(两个到HTTP.SYS,一个到OWIN),以及加载最初的HTML / JS /图像资源所需的任何连接。 它在Linux中使用基于WebKit的浏览器来完成一切。

less数客户,一切正常。 (在某些情况下,即使是大量的客户也完美地工作,我还没有能够确定一个具体的触发这个问题。)

在连接了大约12个这样的客户端之后,其中一些客户端连接到服务器时有困难 – 他们只是坐在等待连接而没有明显加载任何东西(或者有时他们只加载一些资源,例如它们成功地连接到一个服务器,而不是其他)。 一旦他们真正获得连接,他们往往会继续工作,因为浏览器重新使用现有的连接为后续请求。

使用服务器上的Wireshark观察,发现HTTP请求在networking层被接收,但服务器应用程序没有看到。 每隔两分钟就会从客户端networking堆栈中看到TCP重传,试图重新发送原始请求。 大约15分钟后,客户端放弃并向客户端应用程序报告失败,然后断开连接并重新连接; 有时会再次启动重发周期,有时会完美地工作。

通过在所有客户端设备上物理断开和重新连接以太网电缆,问题是可重现的 – 有些将会通过,而其他一些将进入重传环路,如上所述。 奇怪地拉动所有客户端设备的电源,然后同时启动它们通常不会引发这个问题。

禁用服务器计算机上的Windows防火墙似乎可以解决所有问题。 有没有设置某处需要改变来解决这个问题,同时保持防火墙启用?