.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:
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:
- Gunakan profil peluncuran yang ditentukan oleh argumen
launchProfileName
jika ditentukan. - Gunakan profil peluncuran dengan nama yang sama dengan AppHost (ditentukan dengan membaca variabel lingkungan
DOTNET_LAUNCH_PROFILE
). - Gunakan profil peluncuran default (pertama) di launchSettings.json.
- 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
.NET Aspire