我有一个使用LinqToSql的Winform应用程序,因为它是DAL。有一个中央SQL数据库,每台笔记本电脑都有一个本地SQLExpress数据库。使用合并复制的单独模块使两者保持同步。当连接失去中央数据库时,它会'故障'到本地。这很好。立即重新连接的SQL异常
然而,当我恢复连接如到中央数据库中,如果时间还没有真正的长,我得到下面的异常 - >
A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)
我已经通过无数的帖子在这里读SO与此有关,甚至是这个msdn article,详细地概述和解释了什么是错误的,通过所有这些,我还没有找到或阅读解决方案。
我想知道别人怎么处理这个。我很难相信我在这里踏上了新的一步。有没有办法在重新连接时删除我的旧连接?
我在这失去了头发,所以任何洞察力赞赏。
编辑
另外值得注意的是,我很积极的,我所有的Data Contexts
被包裹在一个using
和我没有任何“长期”上下文。
只是一个建议:尝试禁用连接池。当你“关闭”一个ado.net连接时,它不会实际关闭,它会返回到连接池,以便稍后重用它。 – CodingGorilla 2010-09-22 19:13:58
当然,是每个连接的东西或服务器的东西?我相信我会找到它。 – 2010-09-22 19:23:33
这是一个可以添加到连接字符串本身的设置,只需添加:Pooling = false。 – CodingGorilla 2010-09-22 21:09:35