2011-08-13 35 views
2

我使用Sql Server powershell snapses(即“SqlServerProviderSnapin100”,“SqlServerCmdletSnapin100”)。我使用powershell执行脚本,但是当我尝试再次执行它们时,我得到“管道的另一端没有进程”共享内存错误。我需要关闭Powershell,并在重新启动之前重新启动它。如何使用powershell完成时关闭sql server连接?

看来,powershell保持连接打开,这是阻止重新执行脚本。

有谁知道如何解决这个问题?

谢谢。

+0

通常任何打开的连接都必须关闭或处置。所以寻找这个名字的方法。我不知道这个单元,所以不能更具体。 – stej

回答

3

我找到了答案。

问题:ADO连接池一旦打开就会保持连接。 Sql Server关闭连接,但池不知道这一点,因此,ADO假定连接仍然有效,但事实并非如此。

解决方案:首先执行[System.Data.SqlClient.SqlConnection] :: ClearAllPools()。这会使ADO当前在池中保留的所有连接失效,并阻止该异常。