我们的应用程序包括一个ASP.Net Web服务,只需要处理less数客户端。 因此,Windows XP Pro的10个input连接限制通常不成问题。 但是,在一台特定的服务器上,连接有时会停留在CLOSE_WAIT状态。 随着时间的推移,这些连接逐渐增多,最终新的客户端连接被拒绝,因为连接的最大数量已经用完。
从我的谷歌search听起来像一个失败的web服务来正确closures连接可能会导致这个问题,但因为它工作得很好,在其他数百个Windows XP专业版的机器上,我不能看到它是我们的代码中的错误。 它也在受影响的机器上运行良好,直到最终用户(我认为他们设置删除重复文件,以减less他们的磁盘使用情况,但他们并没有完全清理干净)的一些shenanigans。
用户可以改变来引入这个问题? 有没有什么办法可以强制CLOSE_WAIT中的连接超时,而不是让它们挂起? 我已经看到了减lessTcpTimedWaitDelay的build议,但只涉及到TIME_WAIT状态,改变它没有任何作用。
像这样的问题通常是与需要closures和处置的对象相关的代码,但是您的故事暗示它不是这种情况。 我会检查您的连接超时在网站的网站选项卡上。 默认值是120秒。 如果这一点已经提出,那么它可能会保持更多的连接周围比在其他机器上。
同时检查IIS日志,看看是否有不寻常的stream量。 如果你有更多的机器人或其他东西访问你的网站,你可能会比以前更早达到连接限制。