Bagikan melalui


.NET .NET Aspire dan meluncurkan profil

.NET .NET Aspire memanfaatkan profil peluncuran yang ditentukan dalam host aplikasi dan proyek layanan untuk menyederhanakan proses konfigurasi beberapa aspek pengalaman debugging dan penerbitan untuk aplikasi terdistribusi berbasis .NET.NET Aspire.

Luncurkan dasar-dasar profil

Ketika membuat aplikasi baru .NET dari templat, pengembang akan sering melihat direktori Properties yang berisi file bernama launchSettings.json. File pengaturan peluncuran berisi daftar profil peluncuran . Setiap profil peluncuran adalah kumpulan opsi terkait yang menentukan bagaimana Anda ingin dotnet memulai aplikasi Anda.

Kode di bawah ini adalah contoh profil peluncuran dalam file launchSettings untuk aplikasijsonASP.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"
      }
    }
  }
}

File launchSettings json di atas mendefinisikan dua profil peluncuran , http, dan https. Masing-masing memiliki sekumpulan variabel lingkungannya sendiri, meluncurkan URL, dan opsi lainnya. Saat meluncurkan pengembang aplikasi .NET Core dapat memilih profil peluncuran mana yang akan digunakan.

dotnet run --launch-profile https

Jika tidak ada profil peluncuran yang ditentukan, profil peluncuran pertama dipilih secara default. Dimungkinkan untuk meluncurkan aplikasi .NET Core tanpa profil peluncuran menggunakan opsi --no-launch-profile. Beberapa bidang dari launchSettings .json file diterjemahkan ke variabel lingkungan. Misalnya, bidang applicationUrl dikonversi ke variabel lingkungan ASPNETCORE_URLS yang mengontrol ke alamat dan port yang ASP.NET Core mengikat.

Dalam Visual Studio Dimungkinkan untuk memilih profil peluncuran saat meluncurkan aplikasi sehingga mudah untuk beralih di antara skenario konfigurasi saat men-debug masalah secara manual:

Cuplikan layar toolbar standar di Visual Studio dengan pemilih profil peluncuran disorot.

Ketika aplikasi .NET diluncurkan dengan profil peluncuran, variabel lingkungan khusus yang disebut DOTNET_LAUNCH_PROFILE diisi dengan nama profil peluncuran yang digunakan saat meluncurkan proses.

Meluncurkan profil untuk host aplikasi .NET.NET Aspire

Dalam .NET Aspire, AppHost hanyalah aplikasi .NET. Akibatnya ia memiliki file launchSettings.json sama seperti aplikasi lainnya. Berikut adalah contoh file launchSettings.json yang dihasilkan saat membuat proyek .NET.NET Aspire baru dari templat pemula (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"
      }
    }
  }
}

Templat .NET.NET Aspire memiliki serangkaian profil peluncuran yang sangat mirip ke aplikasi ASP.NET Core biasa. Saat proyek aplikasi .NET.NET Aspire diluncurkan, proyek tersebut memulai DistributedApplication dan menghosting webserver yang digunakan oleh Dasbor .NET Aspire untuk mengambil informasi tentang sumber daya yang sedang diorkestrasi oleh .NET Aspire.

Untuk informasi tentang opsi konfigurasi host aplikasi, lihat konfigurasi host aplikasi .NET.NET Aspire.

Hubungan antara profil peluncuran host aplikasi dan proyek layanan

Dalam .NET.NET Aspire host aplikasi bertanggung jawab untuk mengoordinasikan peluncuran beberapa proyek layanan. Saat Anda menjalankan host aplikasi baik melalui baris perintah atau dari Visual Studio (atau lingkungan pengembangan lainnya) profil peluncuran dipilih untuk host aplikasi. Pada gilirannya, host aplikasi akan mencoba menemukan profil peluncuran yang cocok dalam proyek layanan yang diluncurkannya dan menggunakan opsi tersebut untuk mengontrol lingkungan dan konfigurasi jaringan default untuk proyek layanan.

Ketika host aplikasi meluncurkan proyek layanan, host aplikasi tidak hanya meluncurkan proyek layanan menggunakan opsi --launch-profile. Oleh karena itu, tidak akan ada variabel lingkungan DOTNET_LAUNCH_PROFILE yang ditetapkan untuk proyek layanan. Ini karena .NET.NET Aspire memodifikasi variabel lingkungan ASPNETCORE_URLS (berasal dari bidang applicationUrl di profil peluncuran) untuk menggunakan port yang berbeda. Secara default, .NET Aspire menyisipkan proksi terbalik di depan aplikasi ASP.NET Core untuk memungkinkan beberapa instans aplikasi menggunakan metode WithReplicas.

Pengaturan lain seperti opsi dari bidang environmentVariables diteruskan ke aplikasi tanpa modifikasi.

Mengontrol pilihan profil peluncuran

Idealnya, dimungkinkan untuk menyelaraskan nama profil peluncuran antara host aplikasi dan proyek layanan untuk memudahkan peralihan antara opsi konfigurasi pada semua proyek yang dikoordinasikan oleh host aplikasi sekaligus. Namun, mungkin diinginkan untuk mengontrol profil peluncuran yang digunakan proyek tertentu. Metode ekstensi AddProject menyediakan mekanisme untuk melakukan ini.

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

Kode sebelumnya menunjukkan bahwa sumber daya inventoryservice (proyek .NET) diluncurkan menggunakan opsi dari profil peluncuran mylaunchprofile. Logika prioritas profil peluncuran adalah sebagai berikut:

  1. Gunakan profil peluncuran yang ditentukan oleh argumen launchProfileName jika ditentukan.
  2. Gunakan profil peluncuran dengan nama yang sama dengan AppHost (ditentukan dengan membaca variabel lingkungan DOTNET_LAUNCH_PROFILE).
  3. Gunakan profil peluncuran default (pertama) di launchSettings.json.
  4. Jangan gunakan profil peluncuran.

Untuk memaksa proyek layanan diluncurkan tanpa profil peluncuran, argumen launchProfileName pada metode AddProject dapat diatur ke null.

Meluncurkan profil dan titik akhir

Saat menambahkan proyek ASP.NET Core ke host aplikasi, .NET Aspire akan mengurai launchSettings .json file yang memilih profil peluncuran yang sesuai dan secara otomatis menghasilkan titik akhir dalam model aplikasi berdasarkan URL yang ada di bidang applicationUrl. Untuk mengubah titik akhir yang secara otomatis dimasukkan ke metode ekstensi WithEndpoint.

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

Kode sebelumnya menunjukkan cara menonaktifkan proxy terbalik yang .NET Aspire sebarkan di depan untuk aplikasi .NET Core dan memungkinkan aplikasi .NET Core untuk merespons langsung pada permintaan melalui HTTP(S). Untuk informasi selengkapnya tentang opsi jaringan dalam .NET.NET Aspire, lihat ikhtisar jaringan perulangan internal di .NET.NET Aspire.

Lihat juga