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.
İpucu
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.config tarafından başvurulan ilgili bir yapılandırma dosyasında) olmasıdır. Statik ConfigurationManager
nesneyi uygulama ayarları, veri deposu bağlantı dizesi ve uygulamaya eklenen diğer genişletilmiş yapılandırma sağlayıcılarıyla etkileşim kurmak için 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ı mevcut OLABILIR. Ancak, bu yapılandırmayla etkileşim yoktur ConfigurationManager
ve diğer kaynaklardan daha yapılandırılmış uygulama yapılandırması alabilirsiniz. Şimdi yapılandırmanın nasıl toplandığına ve web.config dosyasından yapılandırma bilgilerine nasıl erişebileceğ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, ortamınıza duyarlıdır ve ortamınızda Production
Development
çalışıp çalışmadığını 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:
- Varsa dosyayı appsettings.json
- Appsettings. Varsa {ENVIRONMENT_NAME}.json dosyası
- Varsa diskte kullanıcı gizli dizileri dosyası
- Ortam değişkenleri
- Komut satırı bağımsız değişkenleri
appsettings.json biçimi 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"
}
}
Önceki JSON ile sunulduğunda, yapılandırma sistemi alt değerleri düzleştirme ve tam hiyerarşik yollarına başvurma. İki nokta üst üste (:
) karakteri hiyerarşideki her özelliği ayırır. Örneğin, yapılandırma anahtarı section1:key0
nesne değişmez key0
değerinin section1
değerine erişir.
Kullanıcı gizli dizileri
Kullanıcı gizli dizileri ş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 ortamda
Development
çalıştırılırken yüklenir. - Belirli bir uygulamayla ilişkilendirildi.
- .NET CLI
user-secrets
komutuyla yönetilir.
Komutunu yürüterek uygulamanızı gizli dizi depolama için user-secrets
yapılandırın:
dotnet user-secrets init
Yukarıdaki komut proje dosyasına bir UserSecretsId
öğe ekler. öğesi, gizli dizileri uygulamayla ilişkilendirmek için kullanılan bir GUID içerir. Ardından komutuyla set
bir gizli dizi tanımlayabilirsiniz. Örneğin:
dotnet user-secrets set "Parent:ApiKey" "12345"
Yukarıdaki komut, yapılandırma anahtarını değeriyle 12345
bir geliştiricinin iş istasyonunda kullanılabilir hale getirirParent:ApiKey
.
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ındaki uygulama gizli dizilerinin Kasa depolanması 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ızın içinde okunurken düzleştirilmiş ve iki nokta üst üste karakterleriyle ayrılmıştır. Ancak, bazı işletim sistemleri iki nokta üst üste karakter ortam değişkeni adlara izin vermez. ASP.NET Core, çift alt çizgili (__
) değerleri erişildiğinde iki nokta üst üste 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ı bağımsız değişkenleri
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'in dönüşü
Uygulamanızı IIS üzerinde Windows'a dağıttıysanız, web.config dosyası uygulamanızı yönetmek için IIS'yi 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, öğeye aspNetCore
bir environmentVariables
öğe 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ı okuma
ASP.NET Core, arabirim aracılığıyla IConfiguration uygulama yapılandırması sağlar. Bu yapılandırma arabirimi bileşenleriniz, Blazor sayfalarınız Blazor ve yapılandırmaya erişmesi gereken Çekirdek tarafından yönetilen diğer ASP.NET 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 sayfada veya bileşenin Razor işaretlemesinde, nesnesini .razor dosyasının IConfiguration
en üstüne şöyle bir @inject
yönerge ile ekleyebilirsiniz:
@inject IConfiguration Configuration
Bu önceki deyim, nesnesini Razor şablonunun Configuration
geri kalanında değişken olarak kullanılabilir hale getirirIConfiguration
.
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"];
Önceki örnekten GetSection bölüm1 için yapılandırmayı almaya benzer GetSection("section1")
bir söz dizimine sahip belirli bir konumda anahtar koleksiyonunu almak için yöntemini kullanarak yapılandırma bölümlerinin tamamını getirebilirsiniz.
Kesin türemiş yapılandırma
Web Forms ile, türünden ve ilişkili türlerden ConfigurationSection devralınan kesin olarak belirlenmiş 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:
- Üst sınıftan devralma gerekmez.
- 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 yöntemine Startup.ConfigureServices
aşağıdaki satırı (veya yerine özelliğini services
kullanarak builder.Services
Program.cs uygun konumu) eklenerek doldurulabilir:
services.Configure<MyConfig>(Configuration);
Uygulamanın geri kalanında, kesin olarak yazılan yapılandırma ayarlarını almak için sınıflara giriş parametresi veya Razor şablonları türündeki IOptions<MyConfig>
bir @inject
yönerge 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.