![](/img/trans.png)
[英]No service for type 'Microsoft.AspNetCore.Hosting.Server.IServer' has been registered error in .Net core 3.1 console app
[英]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.CreateDefaultBuilder
或Host.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.