다음을 통해 공유


WebHostBuilder, IWebHost 및 WebHost는 사용되지 않습니다.

WebHostBuilder. IWebHostWebHost NET 10에서 사용되지 않는 것으로 표시되었습니다. WebHostBuilder는 ASP.NET Core 3.0에서 (제네릭 호스트)로 대체 HostBuilder 되었으며 WebApplicationBuilder ASP.NET Core 6.0에서 도입되었습니다. 이러한 새로운 대안은 향후 투자가 이루어지는 곳입니다.

도입된 버전

.NET 10 RC 1

이전 동작

이전에는 컴파일 시간 경고 없이 웹 호스트를 구성하고 빌드하는 데 사용할 WebHostBuilder 수 있습니다.

새 동작

.NET 10부터는 진단 WebHostBuilder ID ASPDEPR004가 있는 컴파일러 경고가 생성됩니다.

경고 ASPDEPR004: WebHostBuilder는 HostBuilder 및 WebApplicationBuilder를 위해 더 이상 사용되지 않습니다. 자세한 내용은 https://aka.ms/aspnet/deprecate/004을 참조하세요.

진단 IDASPDEPR008를 사용하여 컴파일러 경고를 사용 IWebHost 하거나 WebHost 생성합니다.

경고 ASPDEPR008: WebHost는 사용되지 않습니다. 대신 HostBuilder 또는 WebApplicationBuilder를 사용합니다. 자세한 내용은 https://aka.ms/aspnet/deprecate/008을 참조하세요.

파괴적 변경 유형

이 변경 내용은 원본 호환성에 영향을 줄 수 있습니다.

변경 이유

HostBuilderWebApplication 모든 기능을 WebHostBuilder 가지고 미래 투자의 초점입니다. WebHostBuilder 는 ASP.NET Core 3.0의 제네릭 호스트로 WebApplicationBuilder 대체되었으며 ASP.NET Core 6.0에서 최소 API가 도입되었습니다. 이러한 최신 호스팅 모델은 .NET 에코시스템과 더 나은 통합을 제공하며 새 애플리케이션에 권장되는 방법입니다.

다음 중 하나 HostBuilder 또는 WebApplication다음으로 WebHostBuilder 마이그레이션합니다.

  • 전체 호스팅 기능이 필요한 애플리케이션의 경우 다음으로 마이그레이션합니다 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();
    
  • 새 애플리케이션, 특히 최소 API WebApplicationBuilder를 사용하는 애플리케이션의 경우 .

영향을 받는 API

참고하십시오