次の方法で共有


WebHostBuilder、IWebHost、および WebHost は廃止されています

WebHostBuilderIWebHost、および WebHost は、.NET 10 では古いものとしてマークされています。 WebHostBuilder ASP.NET Core 3.0 では HostBuilder (汎用ホスト) に置き換えられ、 WebApplicationBuilder は ASP.NET Core 6.0 で導入されました。 これらの新しい代替手段は、将来の投資が行われる場所です。

導入されたバージョン

.NET 10 RC 1

以前の動作

以前は、 WebHostBuilder を使用して、コンパイル時の警告なしで Web ホストを構成および構築できました。

新しい動作

.NET 10 以降では、 WebHostBuilder を使用すると、診断 ID ASPDEPR004を含むコンパイラ警告が生成されます。

警告ASPDEPR004: WebHostBuilder は、HostBuilder と WebApplicationBuilder を優先して非推奨とされます。 詳細については、 https://aka.ms/aspnet/deprecate/004を参照してください。

IWebHostまたはWebHostを使用すると、診断 ID ASPDEPR008を含むコンパイラ警告が生成されます。

警告ASPDEPR008: WebHost は廃止されています。 代わりに HostBuilder または WebApplicationBuilder を使用してください。 詳細については、 https://aka.ms/aspnet/deprecate/008を参照してください。

破壊的変更の種類

この変更は 、ソースの互換性に影響する可能性があります。

変更の理由

HostBuilder WebApplicationWebHostBuilderのすべての機能を備え、将来の投資の焦点です。 WebHostBuilder は ASP.NET Core 3.0 の汎用ホストに置き換えられ、 WebApplicationBuilder を使用する最小限の API は ASP.NET Core 6.0 で導入されました。 これらの新しいホスティング モデルは、.NET エコシステムとのより優れた統合を提供し、新しいアプリケーションに推奨されるアプローチです。

WebHostBuilderからHostBuilderまたはWebApplicationに移行します。

  • 完全なホスティング機能を必要とするアプリケーションの場合は、 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

こちらも参照ください