首页 > 解决方案 > 我将 .NET CORE 的版本更新为 3.1,但我对 Signal R 有错误

问题描述

我更新了项目的版本并安装了 SignalR。但是我在这里有几个错误:这是我的 ConfigureServices 中的内容,我认为这可能会导致此错误:

 services.AddRazorPages().AddMvcOptions(options => options.EnableEndpointRouting = false);

然后我在 Configure 方法中有两个错误:关于 Signal R

app.UseSignalR(route =>
{
  route.MapHub<MyHub>(caminho);
});

我已经尝试过使用这样的端点:

app.UseEndpoints(endpoints =>
{
  endpoints.MapRazorPages();
  endpoints.MapHub<ChatHub>(caminho);
});

它仍然无法正常工作。我应该怎么办?

标签: asp.net-coresignalr

解决方案


使用端点路由,您可以尝试:

public void ConfigureServices(IServiceCollection services)
{
    //...

    services.AddRazorPages();
    services.AddSignalR();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    //...

    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapRazorPages();
        endpoints.MapHub<MyHub>("/myHub");
    });
}

如果您的应用需要旧版 IRouter 支持,您可以尝试:

public void ConfigureServices(IServiceCollection services)
{

    //...

    services.AddRazorPages().AddMvcOptions(options => options.EnableEndpointRouting = false); 
    services.AddSignalR();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{

    //...

    app.UseSignalR(routes =>
    {
        routes.MapHub<MyHub>("/myHub");
    });

    app.UseMvc();
}

有关将现有 ASP.NET Core 2.x 项目迁移到 3.x 的更多信息,请查看这篇文章:

https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.1&tabs=visual-studio#use-mvc-without-endpoint-routing


推荐阅读