Asp.net mvc 4 多次发送消息的信号器问题

Asp.net mvc 4 多次发送消息的信号器问题,asp.net-mvc-4,signalr,signalr-hub,sqldependency,Asp.net Mvc 4,Signalr,Signalr Hub,Sqldependency,我不熟悉SignalR,我实现了SignalR(asp.net MVC,sql依赖) 我只需要用特定的数据库ID(master_table.masterid)更新客户机 我注意到,最初几次更新记录时,它工作正常,但如果我让应用程序打开几分钟,然后更新记录,它会持续调用“更新消息”功能几次,然后停止工作 有人能告诉我这个代码有什么问题吗 这是我的主页中的代码(这是具有另一个布局页面的索引页面) 这是我的集线器代码 public static void SendMessages(string hNa

我不熟悉SignalR,我实现了SignalR(asp.net MVC,sql依赖) 我只需要用特定的数据库ID(master_table.masterid)更新客户机

我注意到,最初几次更新记录时,它工作正常,但如果我让应用程序打开几分钟,然后更新记录,它会持续调用“更新消息”功能几次,然后停止工作

有人能告诉我这个代码有什么问题吗

这是我的主页中的代码(这是具有另一个布局页面的索引页面)

这是我的集线器代码

public static void SendMessages(string hName)
{
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<MessagesHub>();
hostName = hName;
context.Clients.Group(hostName).updateMessages(hName);
}

public Task leaveGroup(string hName)
{
return Groups.Remove(Context.ConnectionId, hName);
}

public Task joinGroup(string hName)
{
return Groups.Add(Context.ConnectionId, hName);
}

public Task OnDisconnected(IRequest request, string mID)
{
return Groups.Remove(Context.ConnectionId, request.QueryString["System_Name"]);
}
publicstaticvoidsendmages(字符串名)
{
IHubContext context=GlobalHost.ConnectionManager.GetHubContext();
主机名=hName;
context.Clients.Group(主机名).updateMessages(hName);
}
公共任务组(字符串名称)
{
返回Groups.Remove(Context.ConnectionId,hName);
}
公共任务joinGroup(字符串hName)
{
返回Groups.Add(Context.ConnectionId,hName);
}
已断开连接的公共任务(IRequest请求,字符串mID)
{
返回Groups.Remove(Context.ConnectionId,request.QueryString[“System_Name]”);
}

您可以检查数据库是否处于自动关闭模式

select name from master.sys.databases where is_auto_close_on = 1

如果是,您应该禁用它。

您可以检查数据库是否处于自动关闭模式

select name from master.sys.databases where is_auto_close_on = 1

如果是,您应该禁用它。

否,我不认为它已启用,因为上面的sql返回了0行。我认为问题在于连接。启动或停止或在正确的时间启动并离开R组,因为更新消息被触发了几次。否,由于上面的sql返回了0行,我认为它没有启用。我认为问题在于连接。启动或停止,或在正确的时间内关闭和离开组,因为更新消息被多次触发。
public static void SendMessages(string hName)
{
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<MessagesHub>();
hostName = hName;
context.Clients.Group(hostName).updateMessages(hName);
}

public Task leaveGroup(string hName)
{
return Groups.Remove(Context.ConnectionId, hName);
}

public Task joinGroup(string hName)
{
return Groups.Add(Context.ConnectionId, hName);
}

public Task OnDisconnected(IRequest request, string mID)
{
return Groups.Remove(Context.ConnectionId, request.QueryString["System_Name"]);
}
select name from master.sys.databases where is_auto_close_on = 1