Compartilhar 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 foi introduzido no ASP.NET Core 6.0. Essas alternativas mais recentes são onde os investimentos futuros ocorrerão.

Versão introduzida

.NET 10 RC 1

Comportamento anterior

Anteriormente, você poderia usar WebHostBuilder para configurar e criar um host da Web sem avisos de tempo de compilação.

Novo comportamento

A partir do .NET 10, o uso WebHostBuilder produz um aviso do compilador com a ID de ASPDEPR004diagnóstico:

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

Usar IWebHost ou WebHost produzir um aviso do compilador com a ID de ASPDEPR008diagnóstico:

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

Tipo de mudança disruptiva

Essa alteração pode afetar a compatibilidade do código-fonte.

Motivo da alteração

HostBuilder e WebApplication ter todos os recursos de WebHostBuilder e são o foco do investimento futuro. WebHostBuilder foi substituído pelo host genérico no ASP.NET Core 3.0 e as 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 do .NET e são a abordagem recomendada para novos aplicativos.

Migrar de WebHostBuilder um para outro HostBuilder ou WebApplication:

  • Para aplicativos que precisam dos 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 WebApplicationBuilder.

APIs afetadas

Consulte também