簡體   English   中英

System.InvalidOperationException:“沒有為類型 'Microsoft.AspNetCore.Hosting.Server.IServer' 注冊服務。”

[英]System.InvalidOperationException: 'No service for type 'Microsoft.AspNetCore.Hosting.Server.IServer' has been registered.'

正在使用 Microsoft.AspNetCore.Connections.Abstractions v2.2.0。 這個 nuget package 是 Microsoft.AspNetCore.Server.Kestrel 的傳遞依賴項。 使用 Microsoft.AspNetCore.Hosting v2.2.7 升級。 在智能感知中沒有出現 UseKestrel。 所以,把它注釋掉了。 在運行時看到異常 - System.InvalidOperationException:'沒有為類型'Microsoft.AspNetCore.Hosting.Server.IServer'注冊服務。' 在 host.RunAsync(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();

您可以用WebHost.CreateDefaultBuilderHost.CreateDefaultBuilder替換您的自定義 WebHostBuilder 設置。

但是ASP.NET Core 2.2中還應該有UseKestrel的擴展方法,參見https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.hosting.webhostbuilderkestrelexcore-2.usekestrel?view=aspnetcore.hosting.webhostbuilderkestrelexcore-2.2

您可能沒有使用這些擴展方法所在的命名空間,即Microsoft.AspNetCore.Hosting

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM