WebHostBuilder、 IWebHost、および 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
WebApplicationはWebHostBuilderのすべての機能を備え、将来の投資の焦点です。
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
- Microsoft.AspNetCore.Hosting.WebHostBuilder
- Microsoft.AspNetCore.Hosting.IWebHost
- Microsoft.AspNetCore.WebHost
こちらも参照ください
.NET