我正在按照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还是很陌生,所以也许我在那儿做错了什么,但我尝试尽可能严格地遵循该教程。
谢谢!
答案 0 :(得分:0)
在深入研究Startup类之后,我发现问题与之前定义的路由有关。找到了this个问题,此处的答复解决了我的问题。
必须将UseSignalR放在UseMvc之前。