SignaR JS客户端协商请求500

时间:2018-09-19 09:20:39

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

我正在按照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);
        }
    }
}

以及启动类中的配置:

services.AddSignalR();

并且:

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

在深入研究Startup类之后,我发现问题与之前定义的路由有关。找到了this个问题,此处的答复解决了我的问题。

必须将UseSignalR放在UseMvc之前。