ASP. NET CORE У меня нет метода app.UseEndpoints () - PullRequest
1 голос
/ 24 апреля 2020

Просто изучаю ASP. NET Ядро сейчас, и в некоторых руководствах я вижу метод app.UseEndpoints ().

Но когда я создал свой ASP NET проект CORE, я только видел app.Run в StartUp.cs

  1. Так нужно ли для этого установить несколько утилит или был удален UseEndPooints?
  2. Как я могу реализовать этот метод app.UseEndpoints(endpoints => { endpoints.MapHub<ChatHub>("/chat"); });

Ответы [ 3 ]

2 голосов
/ 24 апреля 2020

Если вы используете Net Core 2.1, вы должны настроить его следующим образом:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using SignalRChat.Hubs;

namespace SignalRChat
{


public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }


    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        services.AddSignalR();
    }


    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {

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

}

Только после версии 3.0 вы можете использовать app.UseEndpoints

app.UseEndpoints(endpoints =>
        {              
            endpoints.MapHub<ChatHub>("/chat");
        });

См. документы:

ASP. NET Core 2.1

ASP. NET Core 3.0 +

0 голосов
/ 24 апреля 2020

Если вы учитесь, вам лучше начать с текущей версии. NET Базовая версия 3.1. У 2.1 вообще не было маршрутизации к конечной точке, работа по маршрутизации к конечной точке началась в 2.2, но я думаю, что это было в основном за кулисами, а не для пользовательского кода как UseEndpoints(). В 3.1 применяется ответ Шона - вы обычно получаете правильное включение NuGet, просто указав <Project Sdk="Microsoft.NET.Sdk.Web"> в своем csproj.

0 голосов
/ 24 апреля 2020

Если вы используете. NET Core 3.1 версию, то вам нужно убедиться, что у вас есть:

using Microsoft.AspNetCore.Builder;

В файле, и вы необходимо ссылаться (прямо или косвенно) на сборку Microsoft.AspNetCore.Routing.

...