C# 信号器GetHubContext方法未触发集线器方法

C# 信号器GetHubContext方法未触发集线器方法,c#,asp.net,signalr,C#,Asp.net,Signalr,我正在尝试在同一解决方案中的一个项目中从另一个项目中运行SignalrHub方法。两个项目都在同一个web前端上运行 调用以下代码时,代码在集线器中运行,直到由于未使用IHubContext对象而出现预期错误为止 presentation.ChatHub ch = new ChatHub(); ch.Send(message, "", ""); 发生这种情况时,我将代码更改为以下内容,但是中心内的代码不再运行 IHubContext context = GlobalHost.Connectio

我正在尝试在同一解决方案中的一个项目中从另一个项目中运行SignalrHub方法。两个项目都在同一个web前端上运行

调用以下代码时,代码在集线器中运行,直到由于未使用IHubContext对象而出现预期错误为止

presentation.ChatHub ch = new ChatHub();
ch.Send(message, "", "");
发生这种情况时,我将代码更改为以下内容,但是中心内的代码不再运行

IHubContext context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
context.Clients.All.Send(message, "", "");
我读到的所有内容,包括这里的其他答案,似乎都指向获取IhubContext,然后呼叫客户。所有这些都应该有效,但我不知道为什么它不起作用

编辑:我更改了代码,以便在运行之前在数据库中创建一个post,并更改了代码,以便它运行与javascript接收端匹配的“broadcastMessage”函数。然而,这仍然没有正确地连接起来,javascript函数也没有被命中

   IHubContext context = GlobalHost.ConnectionManager.GetHubContext("chatHub");
   context.Clients.All.broadcastMessage(message, pid, userName, FirstName, count, "", "", nDate);

我不是100%同意这一点,但基于我在下一页的理解: 这意味着,当您从集线器外部在中调用方法时,您并没有调用在集线器上定义的方法,而是告诉集线器在所有连接的客户端上激活jquery


这就是为什么你没有看到你的hub方法被激活。

好的,我修改了我的代码来创建一个post,然后是hub代码,以便它与我的javascript匹配。而这两者仍然没有联系。我现在就更新我的帖子,有什么想法吗?我提供的链接是我遇到同样问题时用来帮助我的。我花了一段时间才让它开始工作,但我的网站上有两个页面,一个用于手动测试标准集线器并确保其正常工作。然后是我实际使用控制器操作的主页。确保您的jquery方法名称相同,并且与您的hub方法和您的操作方法相同,因为jquery是区分大小写的。是的,我已经阅读了它,我的代码似乎与它所说的一致,我将继续调查,感谢您的帮助祝您好运,也许其他人能够为您解释它。哦,请确保您的页面包含~SignalR/Hubs jquery引用。我在一个页面上忘记了这一点,花了很长时间才找到它不工作的原因:-)是的,该页面已经有Signaler在为一个新闻提要工作了。我的目标是,无论何时上传一个项目,新闻提要都会自动更新。我在服务器端这么做。所以信号参考已经开始工作了。具有相同的功能,具有相同的名称。
   IHubContext context = GlobalHost.ConnectionManager.GetHubContext("chatHub");
   context.Clients.All.broadcastMessage(message, pid, userName, FirstName, count, "", "", nDate);