Aracılığıyla paylaş


Öğretici: .NET Framework uygulamasında dinamik yapılandırma kullanma

Uygulama Yapılandırması verileri 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. App Configuration .NET sağlayıcısı, bir .NET Standart kitaplığıdır. Uygulama yeniden başlatma olmadan yapılandırmayı dinamik olarak önbelleğe almayı ve yenilemeyi destekler. Bu öğretici, bir .NET Framework konsol uygulamasında dinamik yapılandırma güncelleştirmelerini nasıl uygulayabileceğinizi gösterir.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • .NET Framework uygulamanızı bir Uygulama Yapılandırması deposundaki değişikliklere yanıt olarak yapılandırmasını güncelleştirecek şekilde ayarlayın.
  • Uygulamanıza en son yapılandırmayı ekleme.

Önkoşullar

Anahtar-değer ekleme

Uygulama Yapılandırması deposuna aşağıdaki anahtar değerini 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:Mesaj Azure Uygulaması Yapılandırmasından Veriler

.NET Framework konsol uygulaması oluşturma

  1. Visual Studio'yu başlatın ve Yeni proje oluştur'u seçin.

  2. Yeni proje oluştur bölümünde Konsol proje türüne göre filtreleyin ve proje şablonu listesinden C# ile Konsol Uygulaması (.NET Framework) seçeneğini belirleyin. İleri'ye basın.

  3. 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.

Uygulama Yapılandırması'dan verileri yeniden yükleme

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

    • Microsoft.Extensions.Configuration.AzureAppConfiguration
    • Azure.Identity
  2. Program.cs açın ve aşağıdaki ad alanlarını ekleyin.

    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.AzureAppConfiguration;
    using Azure.Identity;
    
  3. Yapılandırmayla ilgili nesneleri depolamak için iki değişken ekleyin.

    private static IConfiguration _configuration;
    private static IConfigurationRefresher _refresher;
    
  4. Belirtilen yenileme seçenekleriyle Uygulama Yapılandırması'na bağlanmak için Main yöntemini güncelleştirin. Microsoft Entra ID (önerilen) veya bir bağlantı dizesi kullanarak Uygulama Yapılandırmasına bağlanın.

    DefaultAzureCredential öğesini Uygulama Yapılandırması deponuzda kimlik doğrulaması yapmak için kullanırsınız. Yönergeleri izleyerek kimlik bilgilerinize Uygulama Yapılandırması Veri Okuyucu rolü atayın. Uygulamanızı çalıştırmadan önce iznin yayılması için yeterli süreye izin verdiğinden emin olun.

    // Existing code in Program.cs
    // ... ...
    
    static void Main(string[] args)
    {
        var 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(TimeSpan.FromSeconds(10));
                   });
    
            _refresher = options.GetRefresher();
        });
    
        _configuration = builder.Build();
        PrintMessage().Wait();
    }
    
    // The rest of existing code in Program.cs
    // ... ...
    

    ConfigureRefresh yönteminin içinde, seçilen anahtar-değerlerden herhangi birinde (RegisterAll ile 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, SetRefreshInterval yapılandırma değişikliklerini denetlemek için Uygulama Yapılandırması yeni bir istekte bulunulmadan önce geçmesi gereken en kısa süreyi belirtir. Bu örnekte, gösterim amacıyla bunun yerine 10 saniyelik bir süre belirterek 30 saniyelik varsayılan süre sonunu geçersiz kılarsınız.

  5. Uygulama Yapılandırması yapılandırma verilerinin yenilenmesini tetikleyen adlı PrintMessage() bir yöntem ekleyin.

    private static async Task PrintMessage()
    {
        Console.WriteLine(_configuration["TestApp:Settings:Message"] ?? "Hello world!");
    
        // Wait for the user to press Enter
        Console.ReadLine();
    
        await _refresher.TryRefreshAsync();
        Console.WriteLine(_configuration["TestApp:Settings:Message"] ?? "Hello world!");
    }
    

    Yöntemin tek başına çağrılması ConfigureRefresh , yapılandırmanın otomatik olarak yenilenmesine neden olmaz. Yenilemeyi TryRefreshAsync tetiklemek için arabiriminden IConfigurationRefresher yöntemini çağırırsınız. Bu tasarım, uygulamanız boşta olsa bile Uygulama Yapılandırması gönderilen istekleri önlemeye yöneliktir. Çağrıyı TryRefreshAsync uygulamanızın etkin olduğunu düşündüğünüz yere ekleyebilirsiniz. Örneğin, gelen bir iletiyi, bir siparişi veya karmaşık bir görevin yinelemesini işlerken olabilir. Uygulamanız sürekli etkinse zamanlayıcıda da olabilir. Enter tuşuna bastığınızda TryRefreshAsync öğesini çağırırsınız. Herhangi bir nedenle çağrı TryRefreshAsync başarısız olsa bile uygulamanızın önbelleğe alınmış yapılandırmayı kullanmaya devam edeceğine dikkat edin. Yapılandırılan yenileme aralığı geçtiğinde ve TryRefreshAsync çağrı uygulama etkinliğiniz tarafından yeniden tetiklendiğinde başka bir deneme yapılır. Çağrı TryRefreshAsync, yapılandırılan yenileme aralığı tamamlanmadan önce bir no-op olduğundan, sık çağrılsa bile performansa etkisi minimum düzeydedir.

Uygulamayı yerel olarak derleme ve çalıştırma

  1. Ortam değişkeni ayarlayın.

    Adlı Endpoint bir 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>'
    
  2. Değişikliğin etkili olması için Visual Studio'yu yeniden başlatın.

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

    Yerel uygulama başlatma

  4. Azure portalında, Uygulama Yapılandırması deponuzun Yapılandırma gezginine gidin ve aşağıdaki anahtarın değerini güncelleştirin.

    Anahtar Değer
    TestApp:Ayarlar:Mesaj Azure Uygulaması Yapılandırmasından Veriler - Güncelleştirildi
  5. Çalışan uygulamaya geri dönün, yenilemeyi tetiklemek için Enter tuşuna basın ve güncelleştirilmiş değeri Komut İstemi veya PowerShell penceresinde yazdırın.

    Yerel uygulama yenileme

    Not

    Yenileme işlemi için yapılandırma belirtilirken yöntemi kullanılarak SetRefreshInterval yenileme aralığı 10 saniye olarak ayarlandığından, yapılandırma ayarının değeri yalnızca bu ayar için son yenilemeden bu yana en az 10 saniye geçtiğinde güncelleştirilir.

Kaynakları temizleme

Bu makalede oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız ücretlerden kaçınmak 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 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.

  1. Azure portalında oturum açın ve Kaynak grupları'nı seçin.
  2. Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
  3. Genel bir bakış görmek için sonuç listesinde 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, .NET Framework uygulamanızı, App Configuration'dan yapılandırma ayarlarını dinamik olarak yenileyebilecek şekilde etkinleştirdiniz. ASP.NET Web Uygulamasında (.NET Framework) dinamik yapılandırmayı etkinleştirmeyi öğrenmek için sonraki öğreticiye geçin:

Azure yönetilen kimliğini kullanarak Uygulama Yapılandırması erişimini kolaylaştırmayı öğrenmek için sonraki öğreticiye geçin: