我追踪库中的一个错误,我没有自己写。在ASP.NET中使用此库时,我得到db连接错误,因为当使用相同的连接字符串打开第二个连接时,SQLConnection似乎会关闭。使用相同的连接字符串打开两个SQLConnections
这是记录的行为?可以使用相同的连接字符串打开新的SQLConnection关闭另一个SQLConnection对象吗?
从调试,这似乎是我的问题最可能的原因,但我无法找到任何网络上支持我的理论。
我追踪库中的一个错误,我没有自己写。在ASP.NET中使用此库时,我得到db连接错误,因为当使用相同的连接字符串打开第二个连接时,SQLConnection似乎会关闭。使用相同的连接字符串打开两个SQLConnections
这是记录的行为?可以使用相同的连接字符串打开新的SQLConnection关闭另一个SQLConnection对象吗?
从调试,这似乎是我的问题最可能的原因,但我无法找到任何网络上支持我的理论。
不,会发生的是,当您调用SqlConnection.Open()
方法时,即使使用相同的连接字符串参数,它也会执行以下两项操作之一:重新使用池中未使用的连接或创建新连接。无论哪种方式,您都将导致SQL Server的非冲突SPID。
简而言之,使用相同的连接字符串打开新的连接将不会关闭您的现有连接。但是...通过创建对新连接的新引用来重用已经存在的对象将会破坏连接。
这是记录的行为?
号
可以打开具有相同的连接字符串的新的SQLConnection关闭另一个SQLConnection对象?
号
需要注意的是,除非你已经修改了设置,SQL Server允许32,767个并发连接。但即使如此,这也不能解释你所看到的行为。
找到这个的简单方法是对new这个词做一个搜索,它可能会被再次创建..这个连接可以是一个属性或静态字符串,通过代码打开和关闭..只创建一次..或添加代码将检查Connection.State ..邮政编码,您正在创建它..以及它正在关闭或连接状态关闭的代码 – MethodMan 2011-12-19 14:56:27
这应该可以正常工作。该问题更可能是跨请求重新使用连接。 – SLaks 2011-12-19 14:58:55
@DJ KRAZE:我已经找到使用同一个连接字符串打开第二个连接的部分。正如我写的,我想知道它是否正常,这关闭了第一个连接。 – magnattic 2011-12-19 14:59:04