Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Tavsiye
Bu içerik, Blazor .NET Docs'ta veya çevrimdışı olarak okunabilen ücretsiz indirilebilir bir PDF olarak sağlanan Azure için ASP NET Web Forms Geliştiricileri için e-Kitap'tan bir alıntıdır.
Web Forms'da uygulama yapılandırmasını yüklemenin birincil yolu ,web.config dosyasındaki girdilerin (sunucuda veya web.configtarafından başvurulan ilgili bir yapılandırma dosyasında) olmasıdır. Uygulama ayarları, veri deposu bağlantı dizeleri ve uygulamaya eklenen diğer genişletilmiş yapılandırma sağlayıcılarıyla etkileşim kurmak için statik ConfigurationManager
nesneyi kullanabilirsiniz. Aşağıdaki kodda görüldüğü gibi uygulama yapılandırmasıyla etkileşimleri görmek normaldir:
var configurationValue = ConfigurationManager.AppSettings["ConfigurationSettingName"];
var connectionString = ConfigurationManager.ConnectionStrings["MyDatabaseConnectionName"].ConnectionString;
ASP.NET Core ve sunucu tarafı Blazorile, uygulamanız bir Windows IIS sunucusunda barındırılıyorsa web.config dosyası bulunabilir. Ancak, bu yapılandırmayla etkileşim yoktur; diğer kaynaklardan daha yapılandırılmış uygulama ayarlarını alabilirsiniz. Şimdi yapılandırmanın nasıl toplandığına ve bir web.config dosyasından yapılandırma bilgilerine nasıl erişmeye devam ettiğinize göz atalım.
Yapılandırma kaynakları
ASP.NET Core, uygulamanız için kullanmak isteyebileceğiniz birçok yapılandırma kaynağı olduğunu tanır. Çerçeve, varsayılan olarak size bu özelliklerden en iyi şekilde birini sunmaya çalışır. Yapılandırma, ASP.NET Core tarafından bu çeşitli kaynaklardan okunur ve toplanır. Aynı yapılandırma anahtarı için daha sonra yüklenen değerler önceki değerlerden önceliklidir.
ASP.NET Core, buluta duyarlı olacak ve hem operatörler hem de geliştiriciler için uygulamaların yapılandırmasını kolaylaştıracak şekilde tasarlanmıştır. ASP.NET Core, çalıştığı ortamın farkındadır ve bu ortamın Production
veya Development
olduğunu bilir. Ortam göstergesi sistem ortam değişkeninde ASPNETCORE_ENVIRONMENT
ayarlanır. Hiçbir değer yapılandırılmamışsa, uygulama varsayılan olarak ortamda Production
çalışır.
Uygulamanız, ortamın adına göre çeşitli kaynaklardan yapılandırma tetikleyebilir ve ekleyebilir. Varsayılan olarak, yapılandırma aşağıdaki kaynaklardan listelenen sırayla yüklenir:
- appsettings.jsondosyası, eğer varsa
- appsettings.{ENVIRONMENT_NAME}.json dosyası, varsa
- Diskte kullanıcı sırları dosyası, mevcutsa
- Ortam değişkenleri
- Komut satırı argümanları
appsettings.json formatı ve erişimi
appsettings.json dosyası, aşağıdaki JSON gibi yapılandırılmış değerlerle hiyerarşik olabilir:
{
"section0": {
"key0": "value",
"key1": "value"
},
"section1": {
"key0": "value",
"key1": "value"
}
}
JSON verildiğinde, yapılandırma sistemi alt değerleri düzleştirir ve bunları tam nitelikli hiyerarşik yollarına başvurarak referans alır. İki nokta üst üste (:
) karakteri hiyerarşideki her özelliği ayırır. Örneğin, yapılandırma anahtarı section1:key0
nesne değişmezinin section1
değerine erişir.
Kullanıcı gizli bilgileri
Kullanıcı sırları şunlardır:
- Geliştiricinin iş istasyonundaki bir JSON dosyasında, uygulama geliştirme klasörünün dışında depolanan yapılandırma değerleri.
- Yalnızca
Development
ortamında çalışıyorken yüklenir. - Belirli bir uygulamayla ilişkilendirildi.
- .NET CLI
user-secrets
komutuyla yönetilir.
Uygulamanızı gizli bilgiler depolama için user-secrets
komutunu çalıştırarak yapılandırın.
dotnet user-secrets init
Yukarıdaki komut proje dosyasına bir UserSecretsId
öğe ekler. Öğe, gizli bilgileri uygulama ile ilişkilendirmek için kullanılan bir GUID içerir. Ardından set
komutuyla bir gizli bilgi tanımlayabilirsiniz. Örneğin:
dotnet user-secrets set "Parent:ApiKey" "12345"
Yukarıdaki komut, Parent:ApiKey
yapılandırma anahtarını bir geliştiricinin iş istasyonunda 12345
değeriyle kullanılabilir hale getirir.
Kullanıcı gizli dizilerini oluşturma, depolama ve yönetme hakkında daha fazla bilgi için ASP.NET Core'da geliştirme aşamasında uygulama gizli dizilerinin güvenli depolaması belgesine bakın.
Ortam değişkenleri
Uygulama yapılandırmanıza yüklenen bir sonraki değer kümesi, sistemin ortam değişkenleridir. Sisteminizin ortam değişkeni ayarlarının tümüne artık yapılandırma API'sini kullanarak erişebilirsiniz. Hiyerarşik değerler, uygulamanızda okunurken düzleştirilir ve iki nokta ile ayrılır. Ancak, bazı işletim sistemleri iki nokta karakterini ortam değişkeni adlarına izin vermez. ASP.NET Core, çift alt çizgili (__
) değerlere erişilirken, onları iki noktaya dönüştürerek bu sınırlamayı giderir.
Parent:ApiKey
Yukarıdaki kullanıcı gizli dizileri bölümünde yer alan değer, ortam değişkeniyle Parent__ApiKey
geçersiz kılınabilir.
Komut satırı argümanları
Yapılandırma, uygulamanız başlatıldığında komut satırı bağımsız değişkenleri olarak da sağlanabilir. Ayarlanacak yapılandırma değerinin adını ve yapılandırılacak değeri belirtmek için çift tire (--
) veya eğik çizgi (/
) gösterimini kullanın. Söz dizimi aşağıdaki komutlara benzer:
dotnet run CommandLineKey1=value1 --CommandLineKey2=value2 /CommandLineKey3=value3
dotnet run --CommandLineKey1 value1 /CommandLineKey2 value2
dotnet run Parent:ApiKey=67890
web.config dönüşü
Uygulamanızı IIS üzerinde Windows'a dağıttıysanız ,web.config dosyası iis'yi uygulamanızı yönetecek şekilde yapılandırmaya devam eder. Varsayılan olarak, IIS ASP.NET Çekirdek Modülüne (ANCM) bir başvuru ekler. ANCM, Uygulamanızı Kestrel web sunucusunun yerine barındıran yerel bir IIS modülüdür. Bu web.config bölümü aşağıdaki XML işaretlemesine benzer:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".\MyApp.exe"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
Uygulamaya özgü yapılandırma, environmentVariables
öğesi içinde aspNetCore
öğesi iç içe yerleştirilerek tanımlanabilir. Bu bölümde tanımlanan değerler ASP.NET Core uygulamasına ortam değişkenleri olarak sunulur. Ortam değişkenleri, bu uygulama başlatma segmenti sırasında uygun şekilde yüklenir.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
<environmentVariable name="Parent:ApiKey" value="67890" />
</environmentVariables>
</aspNetCore>
Uygulamada yapılandırmayı oku
ASP.NET Core, IConfiguration arayüzü aracılığıyla uygulama yapılandırması sağlar. Bu yapılandırma arabirimi Blazor bileşenleriniz, Blazor sayfalarınız ve yapılandırmaya erişmesi gereken diğer ASP.NET Core tarafından yönetilen sınıflar tarafından istenmelidir. ASP.NET Core çerçevesi bu arabirimi daha önce yapılandırılmış olan çözümlenmiş yapılandırmayla otomatik olarak doldurur. Bir Blazor sayfasında veya bileşenin Razor işaretlemesinde, IConfiguration
nesnesini @inject
dosyasının en üstüne yönergesi ile şu şekilde enjekte edebilirsiniz:
@inject IConfiguration Configuration
Önceki ifade, IConfiguration
nesnesini Razor şablonunun geri kalanında Configuration
değişkeni olarak kullanılabilir kılar.
Tek tek yapılandırma ayarları, dizin oluşturucu parametresi olarak aranan yapılandırma ayarı hiyerarşisi belirtilerek okunabilir:
var mySetting = Configuration["section1:key0"];
Tüm yapılandırma bölümlerini almak için, belirli bir konumdaki anahtar koleksiyonunu almak üzere GetSection yöntemini kullanabilirsiniz. Bu, önceki örnekten bölüm1 için yapılandırmayı almanıza benzer bir GetSection("section1")
söz dizimine sahiptir.
Kesin türemiş yapılandırma
Web Forms ile, ConfigurationSection türünden ve ilişkili türlerden devralınan güçlü türlendirilmiş bir yapılandırma türü oluşturmak mümkündü. A ConfigurationSection
, bu yapılandırma değerleri için bazı iş kuralları ve işleme yapılandırmanıza olanak tanır.
ASP.NET Core'da yapılandırma değerlerini alacak bir sınıf hiyerarşisi belirtebilirsiniz. Bu sınıflar:
- Ana sınıftan devralmaya gerek yok.
- Yakalamak istediğiniz yapılandırma yapısı için özelliklerle eşleşen özellikleri ve tür başvurularını içermelidir
public
.
Önceki appsettings.json örnekte, değerleri yakalamak için aşağıdaki sınıfları tanımlayabilirsiniz:
public class MyConfig
{
public MyConfigSection section0 { get; set;}
public MyConfigSection section1 { get; set;}
}
public class MyConfigSection
{
public string key0 { get; set; }
public string key1 { get; set; }
}
Bu sınıf hiyerarşisi, Startup.ConfigureServices
özelliği yerine kullanarak builder.Services
dosyasındaki services
yöntemine aşağıdaki satır eklenerek doldurulabilir:
services.Configure<MyConfig>(Configuration);
Uygulamanın geri kalanında, güçlü bir şekilde yazılmış yapılandırma ayarlarını almak için sınıflara giriş parametresi veya @inject
türünde Razor şablonlarına IOptions<MyConfig>
yönergesi ekleyebilirsiniz.
IOptions<MyConfig>.Value
özelliği, yapılandırma ayarlarından MyConfig
doldurulan değeri verir.
@inject IOptions<MyConfig> options
@code {
var MyConfiguration = options.Value;
var theSetting = MyConfiguration.section1.key0;
}
Seçenekler özelliği hakkında daha fazla bilgi ASP.NET Core belgesindeki Seçenekler deseninde bulunabilir.