Aracılığıyla paylaş


WebHostBuilder, IWebHost ve WebHost kullanımdan kaldırıldı

WebHostBuilder, IWebHostve WebHost .NET 10'da eski olarak işaretlendi. WebHostBuilderASP.NET Core 3.0'da (genel konak) ile HostBuilder değiştirildi ve WebApplicationBuilder ASP.NET Core 6.0'da kullanıma sunulmuştur. Bu yeni alternatifler, gelecekteki yatırımların gerçekleşeceği yerdir.

Sürüm kullanıma sunulmuştur

.NET 10 RC 1

Önceki davranış

Daha önce, herhangi bir derleme zamanı uyarısı olmadan bir web konağı yapılandırmak ve derlemek için kullanabilirsiniz WebHostBuilder .

Yeni davranış

.NET 10'dan başlayarak, kullanarak WebHostBuilder tanılama kimliğine ASPDEPR004sahip bir derleyici uyarısı üretir:

uyarı ASPDEPR004: WebHostBuilder, HostBuilder ve WebApplicationBuilder tarafından kullanım dışı bırakıldı. Daha fazla bilgi için https://aka.ms/aspnet/deprecate/004 adresini ziyaret edin.

Tanılama kimliğine ASPDEPR008sahip bir derleyici uyarısı kullanma IWebHost veya WebHost oluşturma:

uyarı ASPDEPR008: WebHost kullanımdan kaldırıldı. Bunun yerine HostBuilder veya WebApplicationBuilder kullanın. Daha fazla bilgi için https://aka.ms/aspnet/deprecate/008 adresini ziyaret edin.

Kesinti yaratan değişiklik türü

Bu değişiklik kaynak uyumluluğunu etkileyebilir.

Değişiklik nedeni

HostBuilder ve WebApplication tüm özelliklerine WebHostBuilder sahiptir ve gelecekteki yatırımın odak noktasıdır. WebHostBuilder ASP.NET Core 3.0'daki genel konakla değiştirildi ve ile en az API WebApplicationBuilder ASP.NET Core 6.0'da kullanıma sunulmuştur. Bu yeni barındırma modelleri .NET ekosistemiyle daha iyi tümleştirme sağlar ve yeni uygulamalar için önerilen yaklaşımdır.

uygulamasından WebHostBuilder veya WebApplication'a HostBuilder geçiş

  • Tam barındırma özelliklerine ihtiyaç duyan uygulamalar için öğesine geçirin 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();
    
  • Yeni uygulamalar, özellikle de en az API kullananlar için öğesine geçirin WebApplicationBuilder.

Etkilenen API'ler

Ayrıca bakınız