sql - 页面刷新时 ASP.Net Web 应用程序中的多个 SQL 通知问题

标签 sql sql-server-2008 notifications sqldependency

我在使用 SQL Server 通知时遇到问题。我正在 ASP.net 中开发一个 Web 应用程序,其中一个页面需要收到有关 SQL Server 数据库中一个表中的新条目的通知。我正在使用 SQL Server 通知服务和 Signal R 来实现此功能。我的网页似乎可以正常工作,获取有关新数据条目的更新。

刷新使用通知的页面时会出现问题。我发现数据库中单个条目的通知数量会随着刷新次数而增加。因此,如果我三次刷新页面,我会收到 3 个通知以获取一个条目。当连接的用户数量增加时,我有点担心这是否会给服务器带来负担。此外,如果在处理使用新条目更新页面的请求时出现错误,用户会收到多条具有相同文本的错误消息。我尝试调试我的代码,发现 SqlDependency 的 on change 事件使用的对象每次都会以不同的 ID 多次触发。以下是我的代码使用通知所做的简要概述 -

  • 我正在使用 SQL Server 2012 和 enable_broker为数据库设置。
  • global.asax , 我正在使用 application_startapplication_stop开始和停止的事件SqlDependency .
  • 在页面代码中,我设置了一个新的 SqlDependency页面加载对象时使用命令对象来监视表的确切数据字段。
  • onchangeSqlDependency对象触发,我正在使用 Signal R 集线器类通知 UI。然后我删除 OnChange SqlDependency 的处理程序对象,请调用 SqlDependency.Stop(connectionstring) , 设置 SqlDependency不反对,请调用SqlDependency.Start(connectionstring)最后设置SqlDependency再次使用命令对象更新数据。这整个设置为nothing-stop-start-reset 对象是为了继续监视数据的变化。

  • 上述步骤工作正常,但是当我刷新页面时,这些步骤会重复刷新次数。我通过更改代码和调试尝试了很多东西,但似乎没有任何解决问题的方法。现在我想知道它是否是我错过的某个地方。

    请帮我解决这个问题。如果需要任何其他信息,如环境、编码细节等,也请告诉我。

    问候,
    坦迈

    最佳答案

    这可能是由连接池引起的。它为池中打开的每个连接重新发出通知。您可以通过更改连接字符串属性取消此特定服务的池:

    Pooling = False;
    

    关于sql - 页面刷新时 ASP.Net Web 应用程序中的多个 SQL 通知问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21448204/

    相关文章:

    mysql - 查找每个站点至少访问过两个不同国家/地区的唯一用户数

    mysql - 连接并到列

    iphone - 在iPhone上不使用事件查询当前屏幕上的触摸次数

    sql-server-2008 - 如何用 Reporting Services 表达式语言编写 if else 语句?

    objective-c - iOS - 通话时的通知?

    android - 通知栏同时显示大图标和小图标

    sql - Openfire Sql 数据库集成

    SQL 查询,它搜索具有数组列的特定项的所有行

    sql - 聚合自引用表

    sql - 2 个表上的简单内连接导致错误的估计行和性能下降