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.
Uygulama Yapılandırmasından alınan veriler bir .NET Framework uygulamasında Uygulama Ayarları olarak yüklenebilir. Daha fazla bilgi için bkz. hızlı başlangıç. Ancak, .NET Framework tarafından tasarlandığı gibi, Uygulama Ayarları yalnızca uygulama yeniden başlatıldığında yenilenebilir. Uygulama Yapılandırması .NET sağlayıcısı, .NET Standart bir kitaplıktır. Uygulama yeniden başlatma olmadan yapılandırmayı dinamik olarak önbelleğe almayı ve yenilemeyi destekler. Bu öğretici, ASP.NET Bir Web Forms uygulamasında dinamik yapılandırma güncelleştirmelerini nasıl uygulayabileceğinizi gösterir. Aynı teknik .NET Framework MVC uygulamaları için de geçerlidir.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- ASP.NET web uygulamanızı bir Uygulama Yapılandırma deposundaki değişikliklere yanıt olarak yapılandırmasını güncelleştirmek için ayarlayın.
- İsteklerdeki en son yapılandırmayı uygulamanıza ekleyin.
Önkoşullar
- Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz bir tane oluşturun.
- Mağaza oluşturma öğreticisinde gösterildiği gibi bir Uygulama Yapılandırma deposu.
- Visual Studio
- .NET Framework 4.7.2 veya üzeri
Anahtar-değer ekleme
aşağıdaki anahtar değerlerini Uygulama Yapılandırması deposuna ekleyin ve Etiket ve İçerik Türü değerlerini varsayılan değerleriyle bırakın. Azure portalını veya CLI'yı kullanarak bir depoya anahtar-değer ekleme hakkında daha fazla bilgi için Anahtar-değer oluşturma bölümüne gidin.
| Anahtar | Değer |
|---|---|
| TestApp:Ayarlar:BackgroundColor | Beyaz |
| TestApp:Ayarlar:FontColor | siyah |
| TestApp:Ayarlar:FontSize | 40 |
| TestApp:Ayarlar:Mesaj | Azure Uygulaması Yapılandırmasından Veriler |
ASP.NET Web Uygulaması oluşturma
Visual Studio'yu başlatın ve Yeni proje oluştur'u seçin.
Proje şablonu listesinden C# ile ASP.NET Web Uygulaması 'nı (.NET Framework) seçin ve İleri'ye basın.
Yeni projenizi yapılandırın bölümüne bir proje adı girin. Framework'ün altında .NET Framework 4.7.2 veya üzerini seçin. Oluştur’a basın.
Yeni ASP.NET Web Uygulaması oluştur bölümünde Web Forms'u seçin. Oluştur’a basın.
Uygulama Yapılandırması'dan verileri yeniden yükleme
Projenize sağ tıklayın ve NuGet Paketlerini Yönet'i seçin. Gözat sekmesinde, aşağıdaki NuGet paketlerinin en son sürümünü arayın ve projenize ekleyin.
- Microsoft.Extensions.Configuration.AzureAppConfiguration
- Azure.Identity
Global.asax.cs dosyasını açın ve aşağıdaki ad alanlarını ekleyin.
using Azure.Identity; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.AzureAppConfiguration;Sınıfına aşağıdaki statik üye değişkenlerini
Globalekleyin.public static IConfiguration Configuration; private static IConfigurationRefresher _configurationRefresher;Application_Startsınıfına birGlobalyöntemi ekleyin. Yöntem zaten varsa, aşağıdaki kodu ekleyin.protected void Application_Start(object sender, EventArgs e) { ConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddAzureAppConfiguration(options => { string endpoint = Environment.GetEnvironmentVariable("Endpoint"); options.Connect(new Uri(endpoint), new DefaultAzureCredential()) // Load all keys that start with `TestApp:` and have no label. .Select("TestApp:*") // Reload configuration if any selected key-values have changed. .ConfigureRefresh(refresh => { refresh.RegisterAll() .SetRefreshInterval(new TimeSpan(0, 5, 0)); }); _configurationRefresher = options.GetRefresher(); }); Configuration = builder.Build(); }Application_Startyöntemi, web uygulamanıza yapılan ilk istek üzerine çağrılır. Uygulamanın yaşam döngüsü sırasında yalnızca bir kez çağrılır. Bu nedenle,IConfigurationnesnenizi başlatmak ve Uygulama Yapılandırması'ndan veri yüklemek için iyi bir yerdir.ConfigureRefreshyönteminin içinde, seçilen anahtar-değerlerden herhangi birinde (RegisterAllile başlayan ve etiketi olmayanlar) herhangi bir değişiklik algılandığında Uygulama Yapılandırma sağlayıcısına yapılandırmanın tamamını yeniden yüklemesini bildirmek için yöntemini çağırırsınız. Yapılandırma değişikliklerini izleme hakkında daha fazla bilgi için bkz. Yapılandırma yenileme için en iyi yöntemler.yöntemi,
SetRefreshIntervalyapılandırma değişikliklerini denetlemek için Uygulama Yapılandırması'na yeni bir istek yapılmadan önce geçmesi gereken en kısa süreyi belirtir. Bu örnekte, 30 saniyelik varsayılan süre sonu süresini geçersiz kılarsınız ve bunun yerine 5 dakikalık bir süre belirtirsiniz. Uygulama Yapılandırma deponuza yapılan olası istek sayısını azaltır.Application_BeginRequestsınıfına birGlobalyöntemi ekleyin. Yöntem zaten varsa, aşağıdaki kodu ekleyin.protected void Application_BeginRequest(object sender, EventArgs e) { _ = _configurationRefresher.TryRefreshAsync(); }Yöntemin tek başına çağrılması
ConfigureRefresh, yapılandırmanın otomatik olarak yenilenmesine neden olmaz.TryRefreshAsyncyöntemini, yenileme sinyali vermek için her isteğin başında çağırırsınız. Bu tasarım, uygulamanızın yalnızca etkin olarak istek aldığında Uygulama Yapılandırması'na istek göndermesini sağlar.TryRefreshAsyncçağrısı, yapılandırılan yenileme aralığı tamamlanmadan önce bir no-op olduğundan, performans etkisi çok azdır. Uygulama Yapılandırması'na bir istek yapıldığında, yapılandırma, mevcut isteğin yürütülmesini engellemeden, beklemeksizin zaman uyumsuz olarak yenilenir. Geçerli istek güncelleştirilmiş yapılandırma değerlerini alamayabilir, ancak sonraki istekler bunu yapar.Çağrı
TryRefreshAsyncherhangi bir nedenle başarısız olursa, uygulamanız önbelleğe alınmış yapılandırmayı kullanmaya devam eder. Yapılandırılmış yenileme aralığı yeniden aşıldığında ve uygulamanıza yeni bir istek gönderildiğindeTryRefreshAsyncçağrısı tetiklenirse, başka bir girişimde bulunulacaktır.
En son yapılandırma verilerini kullanma
Default.aspx açın ve içeriğini aşağıdaki işaretlemeyle değiştirin. Inherits özniteliğinin uygulamanızın ad alanı ve sınıf adıyla eşleştiğinden emin olun.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebFormApp.Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Azure App Configuration Web Forms Demo</title> </head> <body id="body" runat="server"> <form id="form1" runat="server"> <div style="text-align: center"> <asp:Label ID="message" runat="server" /> </div> </form> </body> </html>Default.aspx.cs açın ve aşağıdaki kodla güncelleştirin.
using System; using System.Web.UI.WebControls; namespace WebFormApp { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // Read configuration from the IConfiguration object loaded from Azure App Configuration string messageText = Global.Configuration["TestApp:Settings:Message"] ?? "Please add the key \"TestApp:Settings:Message\" in your Azure App Configuration store."; string messageFontSize = Global.Configuration["TestApp:Settings:FontSize"] ?? "20"; string messageFontColor = Global.Configuration["TestApp:Settings:FontColor"] ?? "Black"; string backgroundColor = Global.Configuration["TestApp:Settings:BackgroundColor"] ?? "White"; message.Text = messageText; message.Font.Size = FontUnit.Point(int.Parse(messageFontSize)); message.ForeColor = System.Drawing.Color.FromName(messageFontColor); body.Attributes["bgcolor"] = backgroundColor; } } }
Uygulamayı derleme ve çalıştırma
Ortam değişkeni ayarlayın.
Adlı
Endpointbir ortam değişkenini, Azure portalındaki mağazanıza genel bakış bölümünde bulunan Uygulama Yapılandırma deponuzun uç noktasına ayarlayın.Windows komut istemini kullanıyorsanız, aşağıdaki komutu çalıştırın ve değişikliğin etkili olması için komut istemini yeniden başlatın:
setx Endpoint "<endpoint-of-your-app-configuration-store>"PowerShell kullanıyorsanız aşağıdaki komutu çalıştırın:
$Env:Endpoint = "<endpoint-of-your-app-configuration-store>"macOS veya Linux kullanıyorsanız aşağıdaki komutu çalıştırın:
export Endpoint='<endpoint-of-your-app-configuration-store>'Değişikliğin etkili olması için Visual Studio'yu yeniden başlatın.
Web uygulamasını derlemek ve çalıştırmak için Ctrl + F5 tuşlarına basın.
Azure portalında, Uygulama Yapılandırma deponuzun Yapılandırma gezginine gidin ve aşağıdaki anahtarların değerini güncelleştirin.
Anahtar Değer TestApp:Ayarlar:BackgroundColor Yeşil TestApp:Ayarlar:FontColor Açık gri TestApp:Ayarlar:Mesaj Azure Uygulama Yapılandırması'ndan alınan veriler - artık canlı güncelleştirmelerle! Yeni yapılandırma ayarlarını görmek için tarayıcı sayfasını yenileyin. Değişikliklerin yansıtılması için birden çok kez yenilemeniz veya yenileme aralığınızı 5 dakikadan kısa bir süreyle değiştirmeniz gerekebilir.
Uyarı
Bu öğreticide kullanılan örnek kodu Azure Uygulama Yapılandırması GitHub deposundan indirebilirsiniz.
Kaynakları temizle
Bu makalede oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız ücretlerden kaçınmak için burada oluşturduğunuz kaynak grubunu silin.
Önemli
Bir kaynak grubunu silmek geri alınamaz. Kaynak grubu ve içindeki tüm kaynaklar kalıcı olarak silinir. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun. Bu makalenin kaynaklarını, saklamak istediğiniz diğer kaynakları içeren bir kaynak grubu içinde oluşturduysanız, kaynak grubunu silmek yerine her kaynağı ilgili bölmeden tek tek silin.
- Azure portalında oturum açın ve Kaynak grupları'nı seçin.
- Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
- Genel bir bakış görmek için sonuç listesinde kaynak grubu adını seçin.
- Kaynak grubunu sil'i seçin.
- Kaynak grubunun silinmesini onaylamanız istenir. Onaylamak için kaynak grubunuzun adını girin ve Sil'i seçin.
Birkaç dakika sonra kaynak grubu ve tüm kaynakları silinir.
Sonraki adımlar
Bu öğreticide, ASP.NET Web Forms uygulamanızı Uygulama Yapılandırması'ndan yapılandırma ayarlarını dinamik olarak yenilemek için etkinleştirmişsiniz. Bir .NET Framework uygulamasında dinamik yapılandırmayı etkinleştirmeyi öğrenmek için sonraki öğreticiye geçin:
Uygulama Yapılandırmasına erişimi kolaylaştırmak için Azure yönetilen kimliğini kullanmayı öğrenmek için sonraki öğreticiye geçin: