我想关闭SqlClient连接池中的所有空闲连接。是否有记录的方法来执行此操作?
问题在于,作为此应用程序(测试工具)的正常处理的一部分,我需要删除数据库并在每个测试场景的开始时重新创建它。显然我不能使用活动连接删除数据库(从Sql Server的角度来看,不是客户端)
答案 0 :(得分:1)
一般来说,没有。特定的数据库提供者可以提供这样做的方法。 SqlClient通过SqlConnection.ClearPool和SqlConnection.ClearAllPools提供了类似的功能 - 但这些功能不会关闭任何打开的连接,它们只清除已返回池的连接。
答案 1 :(得分:0)
这没有真正的理由。如果您需要执行此操作,则可能表示您在应用程序中的其他位置发生泄漏,并应尝试找出您未正确处理连接的位置。
FWIW,我认为没有办法一直为所有提供商做这件事,但根据我上面提到的,应该没有需要来做到这一点。