Partilhar via


WebHostBuilder, IWebHost e WebHost estão obsoletos

WebHostBuilder, IWebHoste WebHost foram marcados como obsoletos no .NET 10. WebHostBuilder foi substituído por HostBuilder (host genérico) no ASP.NET Core 3.0 e WebApplicationBuilder introduzido no ASP.NET Core 6.0. Essas novas alternativas são onde os investimentos futuros ocorrerão.

Versão introduzida

.NET 10 RC 1

Comportamento anterior

Anteriormente, você podia usar WebHostBuilder para configurar e construir um host da Web sem quaisquer avisos em tempo de compilação.

Novo comportamento

A partir do .NET 10, o uso WebHostBuilder produz um aviso do compilador com ID ASPDEPR004de diagnóstico:

aviso ASPDEPR004: WebHostBuilder foi preterido em favor de HostBuilder e WebApplicationBuilder. Para mais informações, visite https://aka.ms/aspnet/deprecate/004.

Usando IWebHost ou WebHost produzindo um aviso do compilador com ID ASPDEPR008de diagnóstico :

aviso ASPDEPR008: WebHost está obsoleto. Use HostBuilder ou WebApplicationBuilder em vez disso. Para mais informações, visite https://aka.ms/aspnet/deprecate/008.

Tipo de mudança disruptiva

Essa alteração pode afetar a compatibilidade da fonte.

Motivo da mudança

HostBuilder e WebApplication têm todas as características WebHostBuilder e são o foco de investimentos futuros. WebHostBuilder foi substituído pelo host genérico no ASP.NET Core 3.0, e APIs mínimas com WebApplicationBuilder foram introduzidas no ASP.NET Core 6.0. Esses modelos de hospedagem mais recentes fornecem uma melhor integração com o ecossistema .NET e são a abordagem recomendada para novos aplicativos.

Migrar de WebHostBuilder para um ou HostBuilderWebApplication:

  • Para aplicativos que precisam de recursos completos de hospedagem, migre para HostBuilder:

    Before:

    var hostBuilder = new WebHostBuilder()
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseStartup()
        .UseKestrel();
    // Test code might use TestServer:
    var testServer = new TestServer(hostBuilder);
    

    After:

    using var host = new HostBuilder()
        .ConfigureWebHost(webHostBuilder =>
        {
            webHostBuilder
                .UseTestServer() // If using TestServer.
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseStartup()
                .UseKestrel();
        })
        .Build();
    await host.StartAsync();
    
    var testServer = host.GetTestServer();
    
  • Para novos aplicativos, especialmente aqueles que usam APIs mínimas, migre para o WebApplicationBuilder.

APIs afetadas

Consulte também