我在.NET 3.5应用程序中使用SqlDependency已超过3年没有任何问题。方案如下:
最近我将系统升级到.NET 4.5,并开始看到将更改放入我们正在监控的表中的问题,但SqlDependency永远不会触发(在服务和用户中)应用)。我开始深入研究这一点,并在我的日志中注意到,在某些时候我会重新注册SqlDependency,但之后通知将永远不会启动。
看到此行为后,我决定在SQL Server上运行探查器来捕获订阅事件。从捕获的数据中,我注意到有时订阅将由一个用户注册(具有唯一ID),但随后将由另一个用户触发(具有相同的唯一ID)。这通常发生在我上面提到的服务和WPF应用程序的一个或多个用户身上。 (我在分析器结果中附上了该问题的屏幕截图)
这是预期的行为吗?是否可以针对不同的用户触发通知?这是否指向应用程序层中的问题?任何帮助表示赞赏。