WebHostBuilder, IWebHost och WebHost är föråldrade

WebHostBuilder, IWebHostoch WebHost har markerats som föråldrade i .NET 10. WebHostBuilder ersattes av HostBuilder (generisk värd) i ASP.NET Core 3.0 och WebApplicationBuilder introducerades i ASP.NET Core 6.0. Dessa nyare alternativ är där framtida investeringar kommer att ske.

Version lanserad

.NET 10 RC 1

Tidigare beteende

Tidigare kunde du använda WebHostBuilder för att konfigurera och skapa en webbvärd utan kompileringstidsvarningar.

Nytt beteende

Från och med WebHostBuilder .NET 10 skapas en kompilatorvarning med diagnostik-ID ASPDEPR004:

varning ASPDEPR004: WebHostBuilder är inaktuell till förmån för HostBuilder och WebApplicationBuilder. Mer information finns på https://aka.ms/aspnet/deprecate/004.

Använda IWebHost eller WebHost skapa en kompilatorvarning med diagnostik-ID ASPDEPR008:

varning ASPDEPR008: WebHost är föråldrat. Använd HostBuilder eller WebApplicationBuilder i stället. Mer information finns på https://aka.ms/aspnet/deprecate/008.

Typ av brytande ändring

Den här ändringen kan påverka källkompatibiliteten.

Orsak till ändring

HostBuilder och WebApplication har alla funktioner WebHostBuilder i och är i fokus för framtida investeringar. WebHostBuilder ersattes av den generiska värden i ASP.NET Core 3.0 och minimala API:er med WebApplicationBuilder introducerades i ASP.NET Core 6.0. Dessa nyare värdmodeller ger bättre integrering med .NET-ekosystemet och är den rekommenderade metoden för nya program.

Migrera från WebHostBuilder till antingen HostBuilder eller WebApplication:

  • För program som behöver de fullständiga värdfunktionerna migrerar du till 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();
    
  • För nya program, särskilt de som använder minimala API:er, migrerar du till WebApplicationBuilder.

Berörda API:er

Se även