System.InvalidOperationException: «Не зарегистрирован сервис для типа« Microsoft.AspNetCore.Hosting.Server.IServer ».» - PullRequest
0 голосов
/ 01 мая 2020

Использовал Microsoft.AspNetCore.Connections.Abstractions v2.2.0. Этот пакет nuget является транзитивной зависимостью для Microsoft.AspNetCore.Server.Kestrel. Обновлен с использованием Microsoft.AspNetCore.Hosting v2.2.7. Там нет UseKestrel, показывая в intellisense. Итак, закомментировал это. Во время выполнения смотрите исключение - System.InvalidOperationException: «Служба для типа« Microsoft.AspNetCore.Hosting.Server.IServer »не зарегистрирована». на host.RunAsyn c (cancellationToken.Token) .GetAwaiter (). GetResult ();

IWebHost host;

host = new WebHostBuilder()
    .UseUrls($"http://{Environment.MachineName}:5000")
    .ConfigureServices(services =>
    {
        services.AddSingleton<IStartupFilter, ApiVersioningStartupFilter>();
        services.AddSingleton(typeof(SdsContext), context);
    })
     .UseStartup<Startup>()
     .Build();
host.RunAsync(cancellationToken.Token).GetAwaiter().GetResult();

1 Ответ

0 голосов
/ 01 мая 2020

Вы можете заменить свою пользовательскую настройку WebHostBuilder на WebHost.CreateDefaultBuilder или Host.CreateDefaultBuilder.

Но также должен быть метод расширения для UseKestrel в ASP. NET Core 2.2, см. https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.hosting.webhostbuilderkestrelextensions.usekestrel?view=aspnetcore-2.2

Возможно, вы не используете для пространства имен, в котором находятся эти методы расширения, то есть Microsoft.AspNetCore.Hosting.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...