Freigeben über


WebHostBuilder, IWebHost und WebHost sind veraltet

WebHostBuilder, IWebHostund WebHost wurden in .NET 10 als veraltet markiert. WebHostBuilder wurde durch HostBuilder (generischer Host) in ASP.NET Core 3.0 ersetzt und WebApplicationBuilder in ASP.NET Core 6.0 eingeführt. Diese neueren Alternativen sind der Ort, an dem zukünftige Investitionen stattfinden werden.

Eingeführt in Version

.NET 10 RC 1

Vorheriges Verhalten

Bisher können WebHostBuilder Sie einen Webhost ohne Kompilierungszeitwarnungen konfigurieren und erstellen.

Neues Verhalten

Ab .NET 10 erzeugt die Verwendung WebHostBuilder einer Compilerwarnung mit Diagnose-ID ASPDEPR004:

Warnung ASPDEPR004: WebHostBuilder ist zugunsten von HostBuilder und WebApplicationBuilder veraltet. Weitere Informationen finden Sie unter https://aka.ms/aspnet/deprecate/004.

Verwenden IWebHost oder WebHost erzeugt eine Compilerwarnung mit Diagnose-ID ASPDEPR008:

Warnung ASPDEPR008: WebHost ist veraltet. Verwenden Sie stattdessen HostBuilder oder WebApplicationBuilder. Weitere Informationen finden Sie unter https://aka.ms/aspnet/deprecate/008.

Art der einschneidenden Änderung

Diese Änderung kann sich auf die Quellkompatibilität auswirken.

Grund für Änderung

HostBuilder und WebApplication haben alle Merkmale und WebHostBuilder sind der Fokus zukünftiger Investitionen. WebHostBuilder wurde durch den generischen Host in ASP.NET Core 3.0 ersetzt, und minimale APIs wurden WebApplicationBuilder in ASP.NET Core 6.0 eingeführt. Diese neueren Hostingmodelle bieten eine bessere Integration in das .NET-Ökosystem und sind der empfohlene Ansatz für neue Anwendungen.

Migrieren von WebHostBuilder zu einem HostBuilder oder WebApplication:

  • Für Anwendungen, die die vollständigen Hostingfunktionen benötigen, migrieren Sie zu 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 neue Anwendungen, insbesondere für Anwendungen, die minimale APIs verwenden, migrieren Sie zu WebApplicationBuilder.

Betroffene APIs

Siehe auch