C++ 看到许多到SQL Server的TCP连接处于时间\等待状态

C++ 看到许多到SQL Server的TCP连接处于时间\等待状态,c++,sql-server,sockets,tcp,oledb,C++,Sql Server,Sockets,Tcp,Oledb,我开发了几个Windows服务,它们通过端口1433上的TCP/IP连接到SQL Server 2008 R2 编写应用程序时,每个服务只使用一个连接来连接SQL Server。但是对于给定的服务,我可能会看到数百个到端口1433的连接都处于时间等待状态 每当我的一个服务与SQL Server断开或连接时,我绝对肯定会有一个条目写入日志文件。然而,对于数百个到SQL Server的TCP连接来说,它们根本没有日志条目 显而易见的想法是,我的服务正在为每个事务打开和关闭与SQL Server的连接

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

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

每当我的一个服务与SQL Server断开或连接时,我绝对肯定会有一个条目写入日志文件。然而,对于数百个到SQL Server的TCP连接来说,它们根本没有日志条目

显而易见的想法是,我的服务正在为每个事务打开和关闭与SQL Server的连接,但这里的情况并非如此

事实上,在我的一个服务上,我会在一分钟内看到数百个到SQL Server的tcp连接处于TIME_WAIT状态,下一分钟它们将全部消失,然后我开发的另一个Windows服务将有数百个到SQL Server的tcp连接处于TIME_WAIT状态。然而,这两个Windows服务每秒都会连续处理事务


有没有任何可能的解释,说明在我的服务没有真正显式地打开和关闭数据库连接的情况下,所有这些到SQL Server的TCP连接是如何发生的?也许某个地方有个MS Bug

在这里再添加一个细节。。我现在正在从SysInternals运行TCPView。。运行TCPView时,所有处于TIME_WAIT状态的打开连接似乎都不是来自我编写的Windows服务,但是进程名称被标识为系统进程。我在TCPView中看到了数百个条目,它们看起来如下:进程PID协议本地地址本地端口远程地址远程端口状态[System process]0 TCP localservername 50547 remoteservername ms-sql-s TIME_WAIT[System Process]可能是什么,PID为0???请参阅Windows事件日志中是否有任何相关条目?Windows事件日志中没有任何相关条目。