.NET .NET Aspire a profily spuštění
.NET .NET Aspire využívá profily spouštění definované v projektech hostitelů aplikací i služeb, aby se zjednodušilo proces konfigurace více aspektů prostředí ladění a publikování pro distribuované aplikace založené na .NET.NET Aspire.
Základy spuštění profilu
Při vytváření nové .NET aplikace od vývojářů šablon se často zobrazí adresář Properties
, který obsahuje soubor s názvem launchSettings.json. Soubor nastavení spuštění obsahuje seznam profilů spuštění . Každý spouštěcí profil je kolekce souvisejících možností, které definují, jak chcete dotnet
spustit aplikaci.
Níže uvedený kód je příkladem profilů spuštění v launchSettings.json soubor aplikace ASP.NET Core.
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": false,
"applicationUrl": "http://localhost:5130",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": false,
"applicationUrl": "https://localhost:7106;http://localhost:5130",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
launchSettings.json soubor výše definuje dva profily spuštění , http
a https
. Každá má vlastní sadu proměnných prostředí, spouštěcí adresy URL a další možnosti. Při spuštění .NET vývojáři aplikací Core můžou zvolit, který spouštěcí profil se má použít.
dotnet run --launch-profile https
Pokud není zadán žádný profil spuštění, je ve výchozím nastavení vybraný první profil spuštění. Aplikaci .NET Core je možné spustit bez spouštěcího profilu pomocí možnosti --no-launch-profile
. Některá pole z launchSettings.json soubor se přeloží do proměnných prostředí. Například pole applicationUrl
se převede na proměnnou prostředí ASPNETCORE_URLS
, která určuje, na kterou adresu a port se ASP.NET Core váže.
V Visual Studio je možné při spuštění aplikace vybrat spouštěcí profil, který usnadňuje přepínání mezi scénáři konfigurace při ručním ladění problémů:
Když se aplikace .NET spustí pomocí profilu spuštění, speciální proměnná prostředí s názvem DOTNET_LAUNCH_PROFILE
se naplní názvem spouštěcího profilu, který byl použit při spuštění procesu.
Spouštěcí profily pro hostitele aplikace .NET.NET Aspire
V .NET Aspireje AppHost jen .NET aplikace. Výsledkem je launchSettings.json
soubor stejně jako jakákoli jiná aplikace. Tady je příklad souboru launchSettings.json
vygenerovaného při vytváření nového projektu .NET.NET Aspire z úvodní šablony (dotnet new aspire-starter
).
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"profiles": {
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:17134;http://localhost:15170",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"DOTNET_ENVIRONMENT": "Development",
"DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:21030",
"DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:22057"
}
},
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:15170",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"DOTNET_ENVIRONMENT": "Development",
"DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:19240",
"DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:20154"
}
}
}
}
Šablony .NET.NET Aspire mají sadu profilů spuštění velmi podobnou běžné ASP.NET Core aplikaci. Když se projekt aplikace .NET.NET Aspire spustí, zahajuje DistributedApplication a hostí webovou službuserver, kterou používá nástrojová deska .NET Aspire k načtení informací o prostředcích orchestrace prováděné pomocí .NET Aspire.
Informace o možnostech konfigurace hostitele aplikace najdete v tématu .NET.NET Aspire konfigurace hostitele aplikace.
Vztah mezi profily spuštění hostitele aplikace a projekty služeb
V .NET.NET Aspire je hostitel aplikace zodpovědný za koordinaci spouštění více projektů služeb. Při spuštění hostitele aplikace přes příkazový řádek nebo z Visual Studio (nebo jiného vývojového prostředí) se pro hostitele aplikace vybere spouštěcí profil. Hostitel aplikace se pak pokusí najít odpovídající spouštěcí profil v projektech služby, které spouští, a pomocí těchto možností řídit prostředí a výchozí konfiguraci sítě pro projekt služby.
Když hostitel aplikace spustí projekt služby, jednoduše nespustí projekt služby pomocí možnosti --launch-profile
. Proto pro projekty služeb nebude nastavena proměnná prostředí DOTNET_LAUNCH_PROFILE
. Důvodem je to, že .NET.NET Aspire upraví proměnnou prostředí ASPNETCORE_URLS
(odvozenou z pole applicationUrl
v profilu spuštění) tak, aby používala jiný port. Ve výchozím nastavení .NET Aspire vloží reverzní proxy před aplikaci ASP.NET Core, aby bylo možné použít více instancí aplikace pomocí metody WithReplicas.
Další nastavení, jako jsou možnosti z pole environmentVariables
, se předávají aplikaci beze změny.
Výběr profilu spuštění ovládacího prvku
V ideálním případě je možné zarovnat názvy spouštěcích profilů mezi hostitelem aplikace a projekty služeb, aby bylo snadné přepínat mezi možnostmi konfigurace u všech projektů koordinovaných hostitelem aplikace najednou. Může však být žádoucí řídit profil spuštění, který konkrétní projekt používá. Metoda rozšíření AddProject poskytuje mechanismus, jak to provést.
var builder = DistributedApplication.CreateBuilder(args);
builder.AddProject<Projects.InventoryService>(
"inventoryservice",
launchProfileName: "mylaunchprofile");
Předchozí kód ukazuje, že inventoryservice
zdroj (projekt .NET) je spuštěn s možnostmi profilu spuštění mylaunchprofile
. Logika priority spouštěcího profilu je následující:
- V případě zadání použijte profil spuštění určený argumentem
launchProfileName
. - Použijte spouštěcí profil se stejným názvem jako AppHost (určený čtením proměnné prostředí
DOTNET_LAUNCH_PROFILE
). - V launchSettings použijte výchozí (první) spouštěcí profil.json.
- Nepoužívejte spouštěcí profil.
Chcete-li vynutit spuštění projektu služby bez profilu spuštění, může být argument launchProfileName
metody AddProject nastaven na hodnotu null.
Spouštěcí profily a koncové body
Když do hostitele aplikace přidáte projekt ASP.NET Core, .NET Aspire parsuje launchSettings.json soubor, který vybere příslušný spouštěcí profil a automaticky vygeneruje koncové body v modelu aplikace na základě adres URL, které jsou přítomné v poli applicationUrl
. Chcete-li upravit koncové body, které jsou automaticky vloženy metodou rozšíření WithEndpoint.
var builder = DistributedApplication.CreateBuilder(args);
builder.AddProject<Projects.InventoryService>("inventoryservice")
.WithEndpoint("https", endpoint => endpoint.IsProxied = false);
Předchozí kód ukazuje, jak zakázat reverzní proxy server, který .NET Aspire nasazuje před aplikací .NET Core, a místo toho umožňuje aplikaci .NET Core reagovat přímo na požadavky přes HTTP(S). Další informace o možnostech síťování v rámci .NET.NET Aspire naleznete v přehledu vnitřní smyčky síťování .NET.NET Aspire.