我的应用程序连接到多个SQL Server实例(使用SMO和ADO.net),这些连接都已正确关闭(我正在使用Using),一个连接是用于表更改通知的SqlDependency。
部分应用程序与远程系统建立封装的VPN连接,这会导致所有网络资源不可用,包括SQL实例。
处理此方案的推荐方法是什么?网络\ sql断开连接频繁但可预测的地方。
我正在使用连接池,因此无法控制重新建立连接,如果我尝试打开连接(从池中检索可用连接),一旦我尝试使用它就会失败。 (由于池化连接未经过测试以节省开销)。
答案 0 :(得分:3)
使用NetworkChange
类来响应IP地址表更改,这些更改表明值得再次尝试。此类将在VPN连接和断开连接时通知您。当您检测到更改时,请使用SqlConnection.ClearAllPools
清除所有连接池。
您还应该调查VPN的替代方案,这些替代方案仍允许您在远程连接时查看本地网络资源,例如DirectAccess。