Öğretici: Bir web uygulamasında dinamik ASP.NET kullanma (.NET Framework)

Uygulama Yapılandırması'nın verileri, uygulama uygulama Ayarlar App .NET Framework yüklenebilir. Daha fazla bilgi için bkz. hızlı başlangıç. Ancak, uygulama tarafından .NET Framework, App Ayarlar yalnızca uygulama yeniden başlatıldığında yenilenir. Uygulama Yapılandırması .NET sağlayıcısı bir .NET Standard kitaplığıdır. Uygulama yeniden başlatma olmadan yapılandırmayı dinamik olarak önbelleğe almayı ve yenilemeyi destekler. Bu öğreticide, bir uygulamanın dinamik yapılandırma güncelleştirmelerini ASP.NET Web Forms gösterir. Aynı teknik, MVC .NET Framework için de geçerlidir.

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:

  • Uygulama Yapılandırma ASP.NET değişikliklerine yanıt olarak yapılandırmasını güncelleştirmek için web uygulamanızı ayarlayın.
  • İsteklere en son yapılandırmayı uygulamanıza ekleme.

Önkoşullar

Uygulama Yapılandırma deposu oluşturma

  1. Yeni bir uygulama yapılandırma deposu oluşturmak için Azure Portaloturum açın. Giriş sayfasının sol üst köşesinde kaynak oluştur' u seçin. Market 'te Ara kutusuna uygulama yapılandırması ' nı girin ve ENTER' u seçin.

    Uygulama yapılandırması ara

  2. Arama sonuçlarından uygulama yapılandırması ' nı seçin ve ardından Oluştur' u seçin.

    Oluştur’u seçin

  3. Uygulama yapılandırması oluştur bölmesinde, aşağıdaki ayarları girin:

    Ayar Önerilen değer Açıklama
    Abonelik Aboneliğiniz Uygulama yapılandırmasını test etmek için kullanmak istediğiniz Azure aboneliğini seçin. Hesabınızda yalnızca bir abonelik varsa, bu otomatik olarak seçilir ve abonelik listesi gösterilmez.
    Kaynak grubu AppConfigTestResources Uygulama yapılandırma deposu kaynağınız için bir kaynak grubu seçin veya oluşturun. Bu grup, kaynak grubunu silerek aynı anda silmek isteyebileceğiniz birden çok kaynağı düzenlemek için yararlıdır. Daha fazla bilgi için Azure kaynaklarınızı yönetmek için kaynak gruplarını kullanma konusunu inceleyin.
    Kaynak adı Genel olarak benzersiz bir ad Uygulama yapılandırma deposu kaynağı için kullanılacak benzersiz bir kaynak adı girin. Ad, 5 ila 50 karakter arasında bir dize olmalı ve yalnızca rakam, harf ve - karakter içermelidir. Ad, karakteriyle başlayamaz veya bitemez - .
    Konum Central US Uygulama yapılandırma deponuzın barındırıldığı coğrafi konumu belirtmek için konum ' i kullanın. En iyi performansı elde etmek için, kaynağı uygulamanızın diğer bileşenleriyle aynı bölgede oluşturun.
    Fiyatlandırma katmanı Ücretsiz İstediğiniz fiyatlandırma katmanını seçin. Daha fazla bilgi için bkz. uygulama yapılandırma fiyatlandırma sayfası.
  4. Ayarlarınızı doğrulamak için gözden geçir + oluştur ' u seçin.

  5. Oluştur’u seçin. Dağıtım birkaç dakika sürebilir.

  6. Dağıtım bittikten sonra uygulama yapılandırma kaynağına gidin. Ayarlar > Erişim anahtarları öğesini seçin. Birincil salt okunurdur anahtar bağlantı dizesini bir yere unutmayın. Uygulamanızı oluşturduğunuz uygulama yapılandırma deposuyla iletişim kuracak şekilde yapılandırmak için bu bağlantı dizesini daha sonra kullanacaksınız.

  1. Aşağıdaki > anahtar-değerleri eklemek > için > İşlemler Yapılandırma gezgini Anahtar-değer Oluştur'a tıklayın:

    Anahtar Değer
    TestApp:Ayarlar:BackgroundColor Beyaz
    TestApp:Ayarlar:FontColor Siyahi
    TestApp:Ayarlar:FontSize 40
    TestApp:Ayarlar:Message Veri kaynağından Azure Uygulama Yapılandırması
    TestApp:Ayarlar:Sentinel v1

    Etiket ve İçerik türünü boş bırakın.

ASP.NET Web Uygulaması Oluşturma

  1. Yeni Visual Studio ve Yeni proje oluştur'a seçin.

  2. Proje ASP.NET listesinden C# ile web uygulaması (.NET Framework) öğesini seçin ve Ardından tuşuna basın.

  3. Yeni projenizi yapılandırma alanına bir proje adı girin. Framework altında, 4.7.2 veya .NET Framework'ı seçin. Oluştur’a basın.

  4. Web Uygulaması için yeni bir ASP.NET oluştur'da, Web Forms. Oluştur’a basın.

Uygulama Yapılandırmasından verileri yeniden yükleme

  1. Projenize sağ tıklayın ve Paketleri Yönet'NuGet seçin. Gözat sekmesinde aşağıdaki uygulama paketinin en son sürümünü NuGet ekleyin.

    Microsoft.Extensions.Configuration.AzureAppConfiguration

  2. Global.asax.cs dosyasını açın ve aşağıdaki ad alanlarını ekleyin.

    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.AzureAppConfiguration;
    
  3. Aşağıdaki statik üye değişkenlerini sınıfına Global ekleyin.

    public static IConfiguration Configuration;
    private static IConfigurationRefresher _configurationRefresher;
    
  4. sınıfına Application_Start bir yöntem Global ekleyin. Yöntem zaten varsa, bu yönteme aşağıdaki kodu ekleyin.

    protected void Application_Start(object sender, EventArgs e)
    {
        ConfigurationBuilder builder = new ConfigurationBuilder();
        builder.AddAzureAppConfiguration(options =>
        {
            options.Connect(Environment.GetEnvironmentVariable("ConnectionString"))
                    // Load all keys that start with `TestApp:` and have no label.
                    .Select("TestApp:*")
                    // Configure to reload configuration if the registered key 'TestApp:Settings:Sentinel' is modified.
                    .ConfigureRefresh(refresh => 
                    {
                        refresh.Register("TestApp:Settings:Sentinel", refreshAll:true)
                               .SetCacheExpiration(new TimeSpan(0, 5, 0));
                    });
            _configurationRefresher = options.GetRefresher();
        });
    
        Configuration = builder.Build();
    }
    

    yöntemi, Application_Start web uygulamanıza yapılan ilk istekte çağrılır. Uygulamanın yaşam döngüsü sırasında yalnızca bir kez çağrılır. Bu nedenle, nesnenizi başlatmak ve Uygulama IConfiguration Yapılandırması'dan veri yüklemek için iyi bir yerdir.

    ConfigureRefreshyönteminde, Uygulama Yapılandırma mağazanız içindeki bir anahtar değişiklik izleme için kaydedilir. yöntemine refreshAll Register parametresi, kayıtlı anahtar değişirse tüm yapılandırma değerlerinin yenilenmesi gerektiğini gösterir. Bu örnekte TestApp:Ayarlar:Sentinel anahtarı, diğer tüm anahtarların değişimini tamamlandıktan sonra güncelleştiren bir sentinel anahtarıdır. Bir değişiklik algılandığında, uygulamanız tüm yapılandırma değerlerini yeniler. Bu yaklaşım, tüm anahtarların değişiklikler için izlenmesine kıyasla uygulamanıza yapılandırma tutarlılığının sağlanmasına yardımcı olur.

    yöntemi, herhangi bir yapılandırma değişikliğini kontrol etmek için Uygulama Yapılandırması'ya yeni bir istekte gelmeden önce SetCacheExpiration geçen en düşük zamanı belirtir. Bu örnekte, varsayılan süre sonu olan 30 saniyeyi geçersiz kılar ve bunun yerine 5 dakikalık bir süre belirtirsiniz. Bu, Uygulama Yapılandırma mağazanıza yapılan olası istek sayısını azaltır.

  5. sınıfına Application_BeginRequest bir yöntem Global ekleyin. Yöntem zaten varsa, bu yönteme aşağıdaki kodu ekleyin.

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        _ = _configurationRefresher.TryRefreshAsync();
    }
    

    Yöntemin ConfigureRefresh tek başına çağrılarak yapılandırmanın otomatik olarak yenilenmesine neden olmayacaktır. Yenileme sinyali TryRefreshAsync için her isteğin başında yöntemini çağırarak. Bu tasarım, uygulamanın yalnızca istekleri etkin bir şekilde alırken Uygulama Yapılandırmasına istek göndermelerini sağlar.

    Çağrı, yapılandırılan önbellek süre sonu süresi dolmadan önce bir operasyon değil, bu nedenle TryRefreshAsync performans etkisi en düşük düzeydedir. Uygulama Yapılandırmasına bir istekte bulundurduysanız, görevi beklemeden yapılandırma, geçerli isteğin yürütülmesini engellemeden zaman uyumsuz olarak yenilenir. Geçerli istek güncelleştirilmiş yapılandırma değerlerini alsa da sonraki istekler bunu yapar.

    Çağrı herhangi TryRefreshAsync bir nedenle başarısız olursa, uygulamanız önbelleğe alınmış yapılandırmayı kullanmaya devam eder. Yapılandırılan önbellek süre sonu tekrar geçirıldığında ve çağrı, uygulamanıza yapılan yeni bir istek tarafından TryRefreshAsync tetiklendiğinde başka bir deneme yapılır.

En son yapılandırma verilerini kullanma

  1. Default.aspx'i açın ve içeriğini aşağıdaki işaretlemeyle değiştirin. Inherits özniteliğinin, uygulamanın ad alanı ve sınıf adıyla eş olduğundan 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>
    
  2. Default.aspx.cs'yi 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

  1. ConnectionString adlı bir ortam değişkenini, Uygulama Yapılandırma deposu oluşturma işlemi sırasında alınan salt okunur anahtar bağlantı dizesine ayarlayın.

    Windows komut istemini kullanırsanız aşağıdaki komutu çalıştırın:

    setx ConnectionString "connection-string-of-your-app-configuration-store"
    

    Aşağıdaki komutu Windows PowerShell aşağıdaki komutu çalıştırın:

    $Env:ConnectionString = "connection-string-of-your-app-configuration-store"
    
  2. Değişikliğin Visual Studio izin vermek için yeniden başlatın.

  3. Web uygulamasını derlemek ve çalıştırmak için Ctrl + F5 tuşlarına basın.

    Yerel uygulama başlatma

  4. Uygulama Azure portal, Uygulama Yapılandırma mağazanız yapılandırma gezginine gidin ve aşağıdaki anahtarların değerini güncelleştirin. TestApp:Ayarlar:Sentinel anahtarını güncelleştirin.

    Anahtar Değer
    TestApp:Ayarlar:BackgroundColor Yeşil
    TestApp:Ayarlar:FontColor LightGray
    TestApp:Ayarlar:Message Azure Uygulama Yapılandırması verileri - şimdi canlı güncelleştirmelerle!
    TestApp:Ayarlar:Sentinel v2
  5. Yeni yapılandırma ayarlarını görmek için tarayıcı sayfasını yenileyin. Değişikliklerin yansıt olması için birden fazla yenilemeniz veya önbellek süre sonu sürenizi 5 dakikadan kısa bir süreye değiştirmeniz gerekir.

    Yerel uygulama yenileme

Not

Bu öğreticide kullanılan örnek kodu Azure Uygulama Yapılandırması GitHub indirebilirsiniz.

Kaynakları temizleme

Bu makalede oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız, ücretlendirmemek için burada oluşturduğunuz kaynak grubunu silin.

Önemli

Silinen kaynak grupları 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 makaleye ait kaynakları tutmak istediğiniz diğer kaynakları içeren bir kaynak grubu içinde oluşturduysanız, kaynak grubunu silmek yerine her kaynağı ilgili bölmeden ayrı ayrı silin.

  1. Azure Portaloturum açın ve kaynak grupları' nı seçin.
  2. Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
  3. Sonuç listesinde, bir genel bakışı görmek için kaynak grubu adını seçin.
  4. Kaynak grubunu sil'i seçin.
  5. 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, Uygulama Yapılandırması'ASP.NET Web Forms yapılandırma ayarlarını dinamik olarak yenilemek için uygulama uygulamanızı etkinleştirdiniz. .NET Framework uygulamasında dinamik yapılandırmayı etkinleştirmeyi öğrenmek için sonraki öğreticiye devam edin:

Azure yönetilen kimliğini kullanarak Uygulama Yapılandırmasına erişimi kolaylaştırma hakkında bilgi edinmek için sonraki öğreticiye devam edin: