.NET .NET Aspire ve başlatma profilleri
.NET .NET Aspire, .NET.NET Aspiretabanlı dağıtılmış uygulamalar için hata ayıklama ve yayımlama deneyiminin birden çok yönünü yapılandırma işlemini basitleştirmek için hem uygulama ana bilgisayarında hem de hizmet projelerinde tanımlanan başlatma profillerini kullanır.
Başlatma profili temel bilgileri
Şablon geliştiricilerinden yeni bir .NET uygulaması oluştururken genellikle launchSettings.jsonadlı bir dosya içeren bir Properties
dizini görür. Başlatma ayarları dosyası,dotnet
ile başlatmak istediğinizde kullanacağınız ilgili seçeneklerin bir koleksiyonudur.
Aşağıdaki kod, bir ASP.NET Core uygulaması için launchSettings.json dosyasındaki başlatma profilleri örneğidir.
{
"$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"
}
}
}
}
Yukarıdaki launchSettings.json dosyası, iki başlatma profili, http
ve https
tanımlar. Her birinin kendi ortam değişkenleri, başlatma URL'leri ve diğer seçeneklerinden oluşan bir kümesi vardır.
.NET Core uygulaması başlatılırken geliştiriciler hangi başlatma profilinin kullanılacağını seçebilir.
dotnet run --launch-profile https
Hiçbir başlatma profili belirtilmezse, varsayılan olarak ilk başlatma profili seçilir.
--no-launch-profile
seçeneğini kullanarak bir .NET Core uygulamasını başlatma profili olmadan başlatmak mümkündür.
launchSettings.json dosyasındaki bazı alanlar ortam değişkenlerine çevrilir. Örneğin, applicationUrl
alanı, hangi adresin ve bağlantı noktasının ASP.NET Core bağlandığını denetleyen ASPNETCORE_URLS
ortam değişkenine dönüştürülür.
Visual Studio'da uygulamayı başlatırken başlatma profilini seçmek mümkündür ve bu da sorunlarda el ile hata ayıklarken yapılandırma senaryoları arasında geçiş yapmayı kolaylaştırır:
Bir .NET uygulaması başlatma profiliyle başlatıldığında, DOTNET_LAUNCH_PROFILE
adlı özel bir ortam değişkeni, işlemi başlatırken kullanılan başlatma profilinin adıyla doldurulur.
.NET .NET Aspire uygulama barındırıcı için profil başlatma
.NET AspireAppHost yalnızca bir .NET uygulamadır. Sonuç olarak, diğer tüm uygulamalar gibi bir launchSettings.json
dosyası vardır. Burada, başlangıç şablonundan (dotnet new aspire-starter
) yeni bir .NET.NET Aspire projesi oluşturulurken oluşturulan launchSettings.json
dosyasının bir örneği verilmiştir.
{
"$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"
}
}
}
}
Uygulama ana bilgisayar yapılandırma seçenekleri hakkında bilgi için bkz.
Uygulama ana bilgisayar başlatma profilleri ve hizmet projeleri arasındaki ilişki
.NET .NET Aspire'de uygulama konağı birden çok hizmet projesinin başlatılmasını koordine etmekle sorumludur. Uygulama ana bilgisayarını komut satırı aracılığıyla veya Visual Studio (veya başka bir geliştirme ortamından) çalıştırdığınızda, uygulama konağı için bir başlatma profili seçilir. Buna karşılık, uygulama ana bilgisayarı başlattığı hizmet projelerinde eşleşen bir başlatma profili bulmaya çalışır ve bu seçenekleri kullanarak hizmet projesi için ortamı ve varsayılan ağ yapılandırmasını denetler.
Uygulama konağı bir hizmet projesi başlattığında, --launch-profile
seçeneğini kullanarak hizmet projesini başlatmaz. Bu nedenle, hizmet projeleri için DOTNET_LAUNCH_PROFILE
ortam değişkeni kümesi olmayacaktır. Bunun nedeni, .NET.NET AspireASPNETCORE_URLS
ortam değişkenini (başlatma profilindeki applicationUrl
alanından türetilmiş) farklı bir bağlantı noktası kullanacak şekilde değiştirmesidir. Varsayılan olarak, .NET AspireWithReplicas yöntemini kullanarak uygulamanın birden çok örneğine izin vermek için ASP.NET Core uygulamasının önüne ters proxy ekler.
environmentVariables
alanındaki seçenekler gibi diğer ayarlar, değişiklik yapılmadan uygulamaya geçirilir.
Başlatma profili seçimini denetleme
İdeal olarak, uygulama konağı tarafından eşgüdümlü tüm projelerde aynı anda yapılandırma seçenekleri arasında geçiş yapmayı kolaylaştırmak için başlatma profili adlarını uygulama konağıyla hizmet projeleri arasında hizalamak mümkündür. Ancak, belirli bir projenin kullandığı başlatma profilini denetlemek istenebilir. AddProject uzantısı yöntemi bunu yapmak için bir mekanizma sağlar.
var builder = DistributedApplication.CreateBuilder(args);
builder.AddProject<Projects.InventoryService>(
"inventoryservice",
launchProfileName: "mylaunchprofile");
Yukarıdaki kod, inventoryservice
kaynağının (.NET bir proje) mylaunchprofile
başlatma profilindeki seçenekler kullanılarak başlatıldığını gösterir. Başlatma profili öncelik mantığı aşağıdaki gibidir:
- Belirtildiyse
launchProfileName
bağımsız değişkeni tarafından belirtilen başlatma profilini kullanın. - AppHost'un adıyla aynı olan başlatma profilini kullanın (bu,
DOTNET_LAUNCH_PROFILE
ortam değişkeni okunarak belirlenir). - launchSettings.json'da varsayılan (ilk) başlatma profilini kullanın.
- Başlatma profili kullanmayın.
Bir hizmet projesini başlatma profili olmadan başlatmaya zorlamak için launchProfileName
yöntemindeki AddProject bağımsız değişkeni null olarak ayarlanabilir.
Profilleri ve uç noktaları başlatma
Uygulama konağına bir ASP.NET Core projesi eklerken .NET Aspire uygun başlatma profilini seçerek launchSettings.json dosyasını ayrıştıracak ve applicationUrl
alanında bulunan URL'lere göre uygulama modelinde otomatik olarak uç noktalar oluşturacaktır.
WithEndpoint genişletme yöntemine otomatik olarak enjekte edilen uç noktaları değiştirmek için.
var builder = DistributedApplication.CreateBuilder(args);
builder.AddProject<Projects.InventoryService>("inventoryservice")
.WithEndpoint("https", endpoint => endpoint.IsProxied = false);
Yukarıdaki kod, .NET Aspire'ın .NET Core uygulaması için dağıttığı ters proxy'nin nasıl devre dışı bırakılacağını ve bunun yerine .NET Core uygulamasının HTTP(S) üzerinden yapılan isteklerde doğrudan yanıt vereceğini gösterir.
Ayrıca bkz.
- Kestrel tarafından yapılandırılmış uç noktaları
.NET Aspire