我需要注册 SqlDependency 来观察远程 SQL Server (2005) 上的新数据。连接丢失是可能的,因为连接是跨城市和国家的。我应该如何处理连接丢失?在正常模式下,我可以在 .Open() 上使用异常,但使用 SqlDependency 连接仍然打开。
感谢您的提示。
SqlCommand command = new SqlCommand("SELECT id FROM dbo.batches WHERE terminalId = @terminalId", msConnection);
command.Parameters.AddWithValue("@terminalId", SqlDbType.Int);
command.Parameters["@terminalId"].Value = terminalId;
SqlDependency dependency = new SqlDependency(command);
dependency.OnChange += new OnChangeEventHandler(NewBatchHandler);
SqlDependency.Start(connectionString);
command.ExecuteNonQuery();
最佳答案
您可以使用重载的构造函数来减少超时,至少可以减少出现此问题的频率。这是一个 MS 知道的问题,不幸的是,据我所知没有解决方法。
Microsoft 的派对路线是他们知道这是一个问题并且不会修复它。过去,当这成为生产数据库的一个实际问题时,我基于轮询推出了自己的解决方案。
关于c# - 如何使用 .NET SqlDependency 处理连接丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10795221/