![](/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.