无法实例化实现类型“Microsoft.Extensions.Hosting.IHostEnvironment”

问题描述 投票:0回答:1

我有一个 Blazor 服务器端应用程序已升级到最新版本的 NET8。启动应用程序时,我收到以下异常:

无法实例化服务类型“Microsoft.Extensions.Hosting.IHostEnvironment”的实现类型“Microsoft.Extensions.Hosting.IHostEnvironment”。

打电话时:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration((context, config) =>
        {
            var builder = config.Build();
            var env = context.HostingEnvironment;

            config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true)
                .AddEnvironmentVariables();

        })
        .UseSerilog((context, services, configuration) => configuration
            .ReadFrom.Configuration(context.Configuration)
            .ReadFrom.Services(services)
            .Enrich.FromLogContext())
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

和堆栈跟踪:

在 //src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/CallSiteFactory.cs 中的 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.Populate():第 78 行 在 //src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceProvider.cs 中的 Microsoft.Extensions.DependencyInjection.ServiceProvider..ctor(ICollection`1 serviceDescriptors, ServiceProviderOptions options):第 63 行 在 //src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceCollectionContainerBuilderExtensions.cs 中的 Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(IServiceCollection 服务、ServiceProviderOptions 选项):第 57 行 在 //src/libraries/Microsoft.Extensions.Hosting/src/HostBuilder.cs 中的 Microsoft.Extensions.Hosting.HostBuilder.InitializeServiceProvider():第 359 行 在 /_/src/libraries/Microsoft.Extensions.Hosting/src/HostBuilder.cs 中的 Microsoft.Extensions.Hosting.HostBuilder.Build():第 164 行 在 C:\Projects\MyApp\MyApp\Program.cs 中的 MyApp.Program.Main(String[] args):第 31 行

我错过了什么?

c# asp.net-core blazor blazor-server-side
1个回答
0
投票

Blazor 是 Web 应用程序,要正确构建此类 Web 应用程序,您需要使用 WebApplicationBuilder

 命名空间中的 
Microsoft.AspNetCore.Builder

如下:

var builder = WebApplication.CreateBuilder(args);

这会初始化新的

WebApplicationBuilder
,然后可以构建并运行 Web 应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.