Tan*_*hra 6 sql notifications sql-server-2008 sqldependency
我在使用SQL Server通知时遇到问题.我正在ASP.net中开发一个Web应用程序,其中一个页面需要通知SQL Server数据库中某个表中的新条目.我正在使用SQL Server Notification服务和Signal R来实现此功能.我的网页似乎可以正常工作,获取有关新数据条目的更新.
刷新使用通知的页面时会出现问题.我发现数据库中单个条目的通知数量会因刷新次数而增加.因此,如果我刷新页面三次,我会收到一个条目的3个通知.我担心如果连接用户的数量增加,这对服务器来说会是一个负担.此外,如果在处理使用新条目更新页面的请求时出错,则用户会收到具有相同文本的多个错误消息.我尝试调试我的代码,发现SqlDependency所使用的对象的on change事件每次都会被激活多次,每次都有不同的ID.以下是我的代码使用通知的简要概述 -
我正在使用SQL Server 2012并enable_broker为数据库设置.
在global.asax,我正在使用application_start和application_stop事件开始和停止SqlDependency.
在页面代码中,我SqlDependency使用命令对象在页面加载上设置新对象,以监视表的确切数据字段.
当onchange的SqlDependency对象火灾,我使用通知信号R毂类的UI.然后我删除对象的OnChange处理程序SqlDependency,调用SqlDependency.Stop(connectionstring),将SqlDependency对象设置为空,调用SqlDependency.Start(connectionstring)并最终SqlDependency使用命令对象再次设置对象以获取更新的数据.整个设置为no-stop-start-reset对象是继续监视数据的变化.
上面的步骤工作正常,但是当我刷新页面时,会重复刷新的次数.我通过更改代码和调试尝试了很多东西,但似乎没有解决问题.现在我想知道它是否是我错过的某个地方.
请帮我解决这个问题.如果需要任何其他信息,如环境,编码细节等,请告诉我.
此致,Tanmay
这可能是由连接池引起的。它会为池中打开的每个连接返回一个通知。您可以通过更改连接字符串属性来取消此特定服务的池化:
Pooling = False;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
976 次 |
| 最近记录: |