Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
WebHostBuilder, IWebHosti WebHost zostały oznaczone jako przestarzałe na platformie .NET 10.
WebHostBuilder został zastąpiony przez HostBuilder (hosta ogólnego) w ASP.NET Core 3.0 i WebApplicationBuilder został wprowadzony w ASP.NET Core 6.0. Te nowsze alternatywy to miejsca, w których nastąpią przyszłe inwestycje.
Wersja wprowadzona
.NET 10 RC 1
Poprzednie zachowanie
Wcześniej można WebHostBuilder było skonfigurować i skompilować hosta internetowego bez żadnych ostrzeżeń dotyczących czasu kompilacji.
Nowe zachowanie
Począwszy od platformy .NET 10, użycie polecenia WebHostBuilder tworzy ostrzeżenie kompilatora z identyfikatorem ASPDEPR004diagnostycznym :
ostrzeżenie ASPDEPR004: WebHostBuilder jest przestarzały na rzecz HostBuilder i WebApplicationBuilder. Aby uzyskać więcej informacji, zobacz https://aka.ms/aspnet/deprecate/004.
Używanie IWebHost lub WebHost tworzenie ostrzeżenia kompilatora o identyfikatorze ASPDEPR008diagnostycznym:
ostrzeżenie ASPDEPR008: Host internetowy jest przestarzały. Zamiast tego użyj programu HostBuilder lub WebApplicationBuilder. Aby uzyskać więcej informacji, zobacz https://aka.ms/aspnet/deprecate/008.
Typ zmiany przełamującej
Ta zmiana może mieć wpływ na zgodność źródła.
Przyczyna zmiany
HostBuilderi mają wszystkie cechy WebHostBuilder i WebApplication są przedmiotem przyszłych inwestycji.
WebHostBuilder został zastąpiony przez hosta ogólnego w ASP.NET Core 3.0, a minimalne interfejsy WebApplicationBuilder API zostały wprowadzone w ASP.NET Core 6.0. Te nowsze modele hostingu zapewniają lepszą integrację z ekosystemem platformy .NET i są zalecanym podejściem do nowych aplikacji.
Zalecana akcja
Migrowanie z WebHostBuilder do lub HostBuilderWebApplication:
W przypadku aplikacji, które wymagają pełnych możliwości hostingu, przeprowadź migrację do programu
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();W przypadku nowych aplikacji, zwłaszcza tych korzystających z minimalnych interfejsów API, przeprowadź migrację do usługi WebApplicationBuilder.
Interfejsy API, których dotyczy problem
- Microsoft.AspNetCore.Hosting.WebHostBuilder
- Microsoft.AspNetCore.Hosting.IWebHost
- Microsoft.AspNetCore.WebHost