Sdílet prostřednictvím


WebHostBuilder, IWebHost a WebHost jsou zastaralé

WebHostBuilder, IWebHosta WebHost byly označeny jako zastaralé v .NET 10. WebHostBuilder HostBuilder nahradil (obecný hostitel) v ASP.NET Core 3.0 a WebApplicationBuilder byl zaveden v ASP.NET Core 6.0. Tyto novější alternativy jsou tam, kde se budou objevovat budoucí investice.

Verze byla představena

.NET 10 RC 1

Předchozí chování

Dříve jste mohli použít WebHostBuilder ke konfiguraci a sestavení webového hostitele bez upozornění v době kompilace.

Nové chování

Počínaje rozhraním .NET 10 vytvoří použití WebHostBuilder upozornění kompilátoru s ID ASPDEPR004diagnostiky:

upozornění ASPDEPR004: WebHostBuilder je zastaralý ve prospěch HostBuilder a WebApplicationBuilder. Další informace naleznete na adrese https://aka.ms/aspnet/deprecate/004.

Použití IWebHost nebo WebHost vytvoření upozornění kompilátoru s ID ASPDEPR008diagnostiky:

upozornění ASPDEPR008: WebHost je zastaralý. Místo toho použijte HostBuilder nebo WebApplicationBuilder. Další informace naleznete na adrese https://aka.ms/aspnet/deprecate/008.

Typ zásadní změny

Tato změna může mít vliv na kompatibilitu zdroje.

Důvod změny

HostBuilder a WebApplication mají všechny funkce WebHostBuilder a jsou zaměřeny na budoucí investice. WebHostBuilder nahradil obecný hostitel v ASP.NET Core 3.0 a v ASP.NET Core 6.0 byla zavedena minimální rozhraní API WebApplicationBuilder . Tyto novější modely hostování poskytují lepší integraci s ekosystémem .NET a jsou doporučeným přístupem pro nové aplikace.

Migrace z WebHostBuilder některého z těchto:HostBuilderWebApplication

  • Pro aplikace, které potřebují úplné možnosti hostování, migrujte na 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();
    
  • Pro nové aplikace, zejména pro ty, kteří používají minimální rozhraní API, migrujte na WebApplicationBuilder.

Ovlivněná rozhraní API

Viz také