Javascript SQLDependency OnChange事件生成无限循环

Javascript SQLDependency OnChange事件生成无限循环,javascript,c#,asp.net-mvc-4,signalr-hub,sqldependency,Javascript,C#,Asp.net Mvc 4,Signalr Hub,Sqldependency,我在使用SQLDependency和SignalrHub时遇到问题。当与集线器的连接启动时,SQLDependency的OnChange事件始终启动,即使数据库中没有任何更改 这是我包含SQLDependency的代码 公共列表countNewTransaksi { 列表新农合=新列表; 命令=新SqlCommand@SELECTEdolpuz_DB.dbo.TABEL_NOTIF_CENTER.NAMA_TABEL,Edolpuz_DB.dbo.TABEL_NOTIF_CENTER.JUMLA

我在使用SQLDependency和SignalrHub时遇到问题。当与集线器的连接启动时,SQLDependency的OnChange事件始终启动,即使数据库中没有任何更改

这是我包含SQLDependency的代码

公共列表countNewTransaksi { 列表新农合=新列表; 命令=新SqlCommand@SELECTEdolpuz_DB.dbo.TABEL_NOTIF_CENTER.NAMA_TABEL,Edolpuz_DB.dbo.TABEL_NOTIF_CENTER.JUMLAH NOTIF来自Edolpuz_DB.dbo.TABEL NOTIF_CENTER,连接; 尝试 { command.Notification=null; SqlDependency=新的SqlDependencycommand; dependency.OnChange+=新的OnChangeEventHandlerdependency\u OnChange; ifconnect.State==ConnectionState.Open 连接。关闭; 连接。打开; reader=command.ExecuteReader; 边读边读 { ncms.Addnew NotifCenterModelreader[0]。ToString,int.Parsereader[1]。ToString; } 退还新农合; } catch{return null;} 最后{connect.Close;} } 私有void依赖项\u OnChangeobject发送方,SqlNotificationEventArgs e { TransHub.Show; } 在我的中心,代码是这样的

公共类TransHub:Hub { 公开静态无效显示 { IHubContext context=GlobalHost.ConnectionManager.GetHubContext; context.Clients.All.displayStatus; } } 这是我的javascript

$function{ //动态创建的代理 var作业=$.connection.transHub; //在作业中心上声明一个函数,以便服务器可以调用它 job.client.displayStatus=函数{ //警报测试; 获取数据; }; //启动连接 $.connection.hub.start.donefunction{ 获取数据; }.失效函数e{ 警惕; }; }; 函数getData{ $.ajax{ url:server+'/Admin/GetNotifikasi/', 键入:“GET”, 数据类型:“json”, 成功:函数数据{ 对于变量i=0;i在dependency\u OnChange中,您需要检查e.Type。如果是的话!=SqlNotificationType.Change,则调用处理程序的原因不是数据更改。订阅本身可能失败。

根据该网站,查询中的表名必须由两部分组成,如[dbo].[TABEL\u NOTIF\u CENTER]

SELECT语句中的投影列必须明确说明,表名必须由两部分组成。请注意,这意味着语句中引用的所有表必须位于同一数据库中


[]的

但当我首先检查e.Type时,即使数据库已更改,它也不会给出任何结果。我的代码怎么了@jjj@HandaruEriPramudiya; 您说过,即使没有更改,OnChange事件也始终会触发-对于单个订阅,您最多只会收到一次通知,因此每当调用dependency_OnChange时,订阅将不再处于活动状态。但是,如果使用e.Type==SqlNotifcationType.Subscribe调用它,则订阅失败。