【问题标题】:Connection ID required需要连接 ID
【发布时间】:2017-12-21 07:08:05
【问题描述】:

我正在尝试使用 SignalR 和 ASP.NET Core 2.0 构建一个简单的聊天应用程序。 问题是,当我想访问我的集线器的一个 URL (localhost:5000/chat) 时,我收到的回复是:Connection ID required,错误代码为 400。我正在使用模板身份验证自动生成(用户存储在本地数据库中)。

这里有以下组件:

Startup.cs

ChatHub.cs

任何帮助将不胜感激。如果您需要任何进一步的信息 - 请告诉我。

【问题讨论】:

  • 能否也显示客户端代码?
  • 你可以拥有它here。但是视图甚至没有被渲染,所以这段代码也不会被执行。
  • 也许你从某一点开始。为什么视图不渲染?你还没说完?你什么时候收到这个错误?您是否尝试将某些东西从服务器发送到客户端?错误似乎没有建立连接
  • 我相信这是来自Startup.cs 中的集线器配置 - 因为如果我不使用以下地址注册集线器:app.UseSignalR(routes => { routes.MapHub<ChatHub>("chat"); }); 将呈现页面。我认为我的请求是由 SignalR 中间件处理的,它会通知我这个错误。
  • 制作路线.MapHub("/chat");

标签: c# asp.net signalr asp.net-core-2.0


【解决方案1】:

问题是我在路由 /chat配置 集线器,而我的 ChatController 也负责它。在将集线器映射到与控制器不同的路线之后,一切正常。

我改变了这个: app.UseSignalR(routes => { routes.MapHub<ChatHub>("chat"); });

对此: app.UseSignalR(routes => { routes.MapHub<ChatHub>("chatter"); });

【讨论】:

  • 谢谢!我已经在同一件事上苦苦挣扎了几个小时。没想到命名和路由会是原因...
  • 这有帮助!感谢您指出了这一点。我出于某种原因删除了我的默认 mvc 路由,这篇文章让我意识到这一点,所以我将它们重新添加并繁荣起来。干活干活! :)
猜你喜欢
  • 2014-03-29
  • 2020-04-27
  • 2013-12-23
  • 2014-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-01
  • 1970-01-01
相关资源
最近更新 更多