我需要注册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();
答案 0 :(得分:3)
您可以使用重载的构造函数来减少超时,至少可以减少此问题的发生频率。这是MS所知道的一个问题,遗憾的是我没有解决这个问题。
微软派对是他们知道这是一个问题,并不打算解决它。过去,当这成为生产数据库的真正问题时,我已根据轮询推出了自己的解决方案。