【问题标题】:SignaR js client negociate request 500SignalR js客户端协商请求500
【发布时间】:2018-09-19 09:20:39
【问题描述】:

我正在关注 msdn 中关于如何在带有 js 客户端的 .Net Core 应用程序中使用 SignalR 的基本教程。你可以在这里找到它:https://docs.microsoft.com/en-us/aspnet/core/tutorials/signalr?view=aspnetcore-2.1&tabs=visual-studio

当我尝试运行应用程序来测试这个简单的功能时,我收到 500 协商 POST 错误。

我什至在连接上设置了日志级别,以查看更多类似这样的详细信息

const connection = new signalR.HubConnectionBuilder()
.withUrl("/chatHub")
.configureLogging(signalR.LogLevel.Trace)
.build();

我只能从日志中得到:image with dev tool errors

这是我的后端代码: ChatHub 类

using Microsoft.AspNetCore.SignalR;
using System.Threading.Tasks;

namespace Tasks.WebApp.Hubs
{
    public class ChatHub : Hub
    {
        public async Task SendMessage(string user, string message)
        {
            await Clients.All.SendAsync("Message", user, message);
        }
    }
}

以及 Startup 类中的配置:

services.AddSignalR();

还有:

app.UseSignalR(routes =>
        {
            routes.MapHub<ChatHub>("/chatHub");
        });

您对我在这里做错了什么有任何见解吗?我对 SignalR 和 JS 很陌生,所以也许我在那里做错了什么,但我尽量严格地遵循本教程。

谢谢!

【问题讨论】:

  • 您可以在 github 或其他地方分享您的代码以获取更多详细信息吗? 500错误代码表示,错误在服务器端。您必须查看服务器端错误以获取更多详细信息。
  • 我的服务器端代码就是您在教程中看到的。刚刚添加了一个名为 ChatHub 的类,它继承自 SignalR 中的 Hub 类,并且我按照教程中的建议在 Startup 文件中配置了 Signal。所以没有什么新鲜的,没有什么花哨的。只是从教程中复制的代码......这就是为什么我想知道为什么我有这个问题
  • 您需要共享服务器代码,否则我们只能猜测。每个细节都有帮助。
  • 我已经用所有后端代码编辑了这个问题。如果您有任何提示,请告诉我。

标签: signalr-hub signalr.client asp.net-core-signalr


【解决方案1】:

挖掘了Startup类后,发现问题与之前定义的路由有关。找到this 问题,这里的回复解决了我的问题。

必须将 UseSignalR 放在 UseMvc 之前。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 2016-03-01
    • 1970-01-01
    • 2017-11-25
    • 2018-04-18
    • 1970-01-01
    相关资源
    最近更新 更多