我开发了几个Windows服务,通过端口1433上的TCP / IP连接到SQL Server 2008 R2 .

编写应用程序,以便每个服务只使用一个连接来连接到SQL Server . 但是在给定服务的时间等待状态下,我可能会看到端口1433的数百个连接 .

每当我的一个服务断开连接或从SQL Server连接时,我绝对肯定将条目写入日志文件 . 然而,对于SQL Server的数百个TCP连接,它们都没有任何日志条目 .

显而易见的想法是我的服务是为每个事务打开和关闭与SQL Server的连接,但这不是这种情况 .

事实上,我将在我的一个服务上看到数百个到TIME_WAIT状态的SQL Server的tcp连接一分钟,下一分钟他们将全部消失,然后我开发的另一个Windows服务将有数百个tcp在TIME_WAIT状态下与SQL Server的连接 . 然而,两种Windows服务每秒都在不断处理交易 .

是否有任何可能的解释,如果没有我的服务实际显式打开和关闭数据库连接,所有这些到SQL Server的TCP连接是如何发生的?也许某个MS Bug?