Compartir a través de


WebHostBuilder, IWebHost y WebHost están obsoletos

WebHostBuilder, IWebHosty WebHost se han marcado como obsoletos en .NET 10. WebHostBuilder fue reemplazado por HostBuilder (host genérico) en ASP.NET Core 3.0 y WebApplicationBuilder se introdujo en ASP.NET Core 6.0. Estas alternativas más recientes son donde se producirán inversiones futuras.

Versión introducida

.NET 10 RC 1

Comportamiento anterior

Anteriormente, podría usar WebHostBuilder para configurar y compilar un host web sin advertencias en tiempo de compilación.

Nuevo comportamiento

A partir de .NET 10, el uso WebHostBuilder de genera una advertencia del compilador con el identificador ASPDEPR004de diagnóstico :

advertencia ASPDEPR004: WebHostBuilder está en desuso en favor de HostBuilder y WebApplicationBuilder. Para más información, visite https://aka.ms/aspnet/deprecate/004.

Usar IWebHost o WebHost genera una advertencia del compilador con el identificador ASPDEPR008de diagnóstico :

advertencia ASPDEPR008: WebHost está obsoleto. Use HostBuilder o WebApplicationBuilder en su lugar. Para más información, visite https://aka.ms/aspnet/deprecate/008.

Tipo de cambio disruptivo

Este cambio puede afectar a la compatibilidad de origen.

Motivo del cambio

HostBuilder y WebApplication tienen todas las características de WebHostBuilder y son el foco de la inversión futura. WebHostBuilder se reemplazó por el host genérico en ASP.NET Core 3.0 y se introdujeron las API mínimas con WebApplicationBuilder en ASP.NET Core 6.0. Estos modelos de hospedaje más recientes proporcionan una mejor integración con el ecosistema de .NET y son el enfoque recomendado para las nuevas aplicaciones.

Migre de WebHostBuilder a o WebApplicationHostBuilder :

  • Para las aplicaciones que necesitan las funcionalidades de hospedaje completas, migre a 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();
    
  • En el caso de las nuevas aplicaciones, especialmente las que usan API mínimas, migre a WebApplicationBuilder.

Las APIs afectadas

Consulte también