繁体   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