Megosztás a következőn keresztül:


.NET .NET Aspire és indító profilok

.NET .NET Aspire alkalmazás-gazdagép- és szolgáltatásprojektekben definiált indítási profilokat használ, hogy leegyszerűsítse a hibakeresési és közzétételi élmény több aspektusának konfigurálását .NET.NET Aspire-alapú elosztott alkalmazások esetében.

A profil indítása – alapismeretek

Amikor sablonból hoz létre új .NET alkalmazást, a fejlesztők gyakran láthatnak egy Properties könyvtárat, amely egy launchSettings.jsonnevű fájlt tartalmaz. Az indítási beállítások fájlja indítási profilok listáját tartalmazza. Minden indítási profil egy kapcsolódó beállításgyűjtemény, amely meghatározza, hogyan szeretné dotnet elindítani az alkalmazást.

Az alábbi kód egy ASP.NET Core-alkalmazás launchSettings.json fájljának indítási profiljait szemlélteti.

{
  "$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"
      }
    }
  }
}

A fenti launchSettings.json fájl két indítási profilt határoz meg, http és https. Mindegyik rendelkezik saját környezeti változókkal, indítási URL-címekkel és egyéb lehetőségekkel. .NET Core-alkalmazás indításakor a fejlesztők kiválaszthatják, hogy melyik indítási profilt használják.

dotnet run --launch-profile https

Ha nincs megadva indítási profil, akkor alapértelmezés szerint az első indítási profil van kiválasztva. A .NET lehetőséggel elindíthat egy --no-launch-profile Core-alkalmazást indítási profil nélkül. A launchSettings.json fájl egyes mezői környezeti változókra lesznek lefordítva. A applicationUrl mező például a ASPNETCORE_URLS környezeti változóvá alakul, amely szabályozza, hogy melyik címhez és porthoz ASP.NET Core kötődik.

Az Visual Studio az alkalmazás indításakor kiválaszthatja az indítási profilt, így manuálisan hibakeresési problémák esetén egyszerűen válthat a konfigurációs forgatókönyvek között:

Képernyőkép a Visual Studio szokásos eszköztáráról, amelyen ki van emelve az indítási profil választója.

Amikor egy .NET alkalmazás indítási profillal indul el, egy speciális környezeti változó, az DOTNET_LAUNCH_PROFILE lesz feltöltve a folyamat indításakor használt indítási profil nevével.

Profilok indítása az .NET.NET Aspire alkalmazásgazda számára

Az AppHost .NET Aspirecsak egy .NET alkalmazás. Ennek eredményeként egy launchSettings.json fájllal rendelkezik, mint bármely más alkalmazás. Íme egy példa az új launchSettings.json.NET projekt kezdősablonból (.NET Aspire) való létrehozásakor létrehozott dotnet new aspire-starter fájlra.

{
  "$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"
      }
    }
  }
}

A .NET.NET Aspire sablonok nagyon hasonló indítási profilokkal rendelkeznek, egy normál ASP.NET Core alkalmazáshoz. Amikor a .NET.NET Aspire alkalmazásprojekt elindul, elindít egy DistributedApplication, és egy webkiszolgálót üzemeltet, amelyet a .NET Aspire irányítópult használ a .NET Aspireáltal vezényelt erőforrásokra vonatkozó információk lekéréséhez.

Az alkalmazásgazda konfigurációs beállításairól további információt .NET.NET Aspire alkalmazásgazda konfigurációscímű témakörben talál.

Az alkalmazásgazda indítási profiljai és a szolgáltatásprojektek közötti kapcsolat

A .NET.NET Aspire az alkalmazásgazda felelős több szolgáltatásprojekt elindításának koordinálásáért. Ha az alkalmazás gazdagépét a parancssoron keresztül vagy Visual Studio (vagy más fejlesztési környezetből) futtatja, a rendszer kiválaszt egy indítási profilt az alkalmazásgazda számára. Az alkalmazásgazda viszont megkísérli megkeresni a megfelelő indítási profilt az általa indított szolgáltatásprojektekben, és ezekkel a beállításokkal szabályozza a szolgáltatásprojekt környezetét és alapértelmezett hálózati konfigurációját.

Amikor az alkalmazásgazda elindít egy szolgáltatásprojektet, nem egyszerűen elindítja a szolgáltatásprojektet a --launch-profile lehetőséggel. Ezért a szolgáltatásprojektekhez nem lesz DOTNET_LAUNCH_PROFILE környezeti változókészlet. Ennek az az oka, hogy .NET.NET Aspire módosítja a ASPNETCORE_URLS környezeti változót (amely az indítási profil applicationUrl mezőjéből származik) egy másik port használatára. Alapértelmezés szerint .NET Aspire beszúr egy fordított proxyt a ASP.NET Core alkalmazás elé, hogy az alkalmazás több példányát is lehetővé tegye a WithReplicas metódus használatával.

Más beállítások, például a environmentVariables mező beállításai módosítás nélkül továbbítódnak az alkalmazásnak.

Indítási profil kiválasztásának vezérlése

Ideális esetben az indítási profilok nevei igazíthatók az alkalmazásgazda és a szolgáltatásprojektek között, így egyszerűen válthat a konfigurációs beállítások között az alkalmazásgazda által koordinált összes projekten. Előfordulhat azonban, hogy az adott projekt által használt indítási profilt érdemes szabályozni. Ehhez a AddProject bővítménymetódus biztosít egy mechanizmust.

var builder = DistributedApplication.CreateBuilder(args);
builder.AddProject<Projects.InventoryService>(
    "inventoryservice",
    launchProfileName: "mylaunchprofile");

Az előző kód azt mutatja, hogy a inventoryservice erőforrás (egy .NET projekt) a mylaunchprofile indítási profiljának beállításaival indul el. Az indítási profil elsőbbségi logikája a következő:

  1. Ha meg van adva, használja launchProfileName argumentum által megadott indítási profilt.
  2. Használja az AppHost nevével megegyező indítási profilt (amelyet a DOTNET_LAUNCH_PROFILE környezeti változó olvasása határoz meg).
  3. Használja az alapértelmezett (első) indítási profilt a launchSettings.json.
  4. Ne használjon indítási profilt.

Ha azt szeretné, hogy egy szolgáltatásprojekt indítási profil nélkül induljon el, a launchProfileName metódus AddProject argumentuma null értékűre állítható.

Profilok és végpontok elindítása

Amikor ASP.NET Core projektet ad hozzá az alkalmazás gazdagépéhez, .NET Aspire elemzi a launchSettings.json fájlt, kiválasztva a megfelelő indítási profilt, és automatikusan létrehozza a végpontokat az alkalmazásmodellben a applicationUrl mezőben található URL-címek alapján. A WithEndpoint bővítménymetódus automatikusan beszúrt végpontok módosításához.

var builder = DistributedApplication.CreateBuilder(args);
builder.AddProject<Projects.InventoryService>("inventoryservice")
       .WithEndpoint("https", endpoint => endpoint.IsProxied = false);

Az előző kód bemutatja, hogyan tilthatja le az .NET Aspire által a .NET Core-alkalmazás előtt üzembe helyezendő fordított proxyt, és ehelyett lehetővé teszi, hogy a .NET Core-alkalmazás közvetlenül a HTTP(s) használatával válaszoljon a kérelmekre. A .NET.NET Aspire belüli hálózati lehetőségekről további információért lásd a .NET.NET Aspire belső hurok hálózati áttekintése.

Lásd még: