Öğretici: Bir uygulamanın dinamik .NET Framework kullanma

Uygulama Yapılandırması'nın verileri, bir uygulamanın 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 öğretici, bir konsol uygulamasında dinamik yapılandırma güncelleştirmelerini .NET Framework gösterir.

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

  • Uygulama Yapılandırma .NET Framework değişikliklerine yanıt olarak yapılandırmasını güncelleştirmek için uygulama uygulamanızı ayarlayın.
  • Uygulamanıza en son yapılandırmayı 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ğeri > eklemek için Yapılandırma gezgini + > Anahtar-değer Oluştur'a tıklayın:

    Anahtar Değer
    TestApp:Ayarlar:Message Azure Uygulama Yapılandırması'dan veriler

    Etiket ve İçerik Türü'leri boş bırakın.

.NET Framework konsol uygulaması oluşturma

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

  2. Yeni proje oluştur'da Konsol proje türünü filtrelenin ve proje şablonu listesinden C# ile Konsol Uygulaması (.NET Framework) öğesini seçin. Sonraki'ne 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.

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 paket paketinin en son sürümünü NuGet ekleyin.

    Microsoft.Extensions.Configuration.AzureAppConfiguration

  2. Program.cs'yi açın ve aşağıdaki ad alanlarını ekleyin.

    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.AzureAppConfiguration;
    
  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 Main seçenekleriyle Uygulama Yapılandırmasına bağlanmak için yöntemini güncelleştirin.

    static void Main(string[] args)
    {
        var builder = new ConfigurationBuilder();
        builder.AddAzureAppConfiguration(options =>
        {
            options.Connect(Environment.GetEnvironmentVariable("ConnectionString"))
                    // Load all keys that start with `TestApp:`.
                    .Select("TestApp:*")
                    // Configure to reload the key 'TestApp:Settings:Message' if it is modified.
                    .ConfigureRefresh(refresh =>
                    {
                        refresh.Register("TestApp:Settings:Message")
                               .SetCacheExpiration(TimeSpan.FromSeconds(10));
                    });
    
            _refresher = options.GetRefresher();
        });
    
        _configuration = builder.Build();
        PrintMessage().Wait();
    }
    

    ConfigureRefreshyönteminde, Uygulama Yapılandırma mağazanız içindeki bir anahtar değişiklik izleme için kaydedilir. yöntemi, kayıtlı anahtar değişirse tüm yapılandırma değerlerinin yenilenmesi gerekip gerek olmadığını belirtmek için kullanılan Register isteğe bağlı bir boole refreshAll parametresine sahiptir. Bu örnekte yalnızca TestApp:Ayarlar:Message anahtarı yenilenir. 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 geçen SetCacheExpiration en düşük zamanı belirtir. Bu örnekte, tanıtım amacıyla yerine 10 saniyelik bir süre belirterek varsayılan süre sonu olan 30 saniyeyi geçersiz kılarsınız.

  5. Uygulama Yapılandırması'dan PrintMessage() yapılandırma verilerini yenilemeyi tetikleyen adlı 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 ConfigureRefresh tek başına çağrılarak yapılandırmanın otomatik olarak yenilenmesine neden olmayacaktır. Yenilemeyi TryRefreshAsync tetiklemek için IConfigurationRefresher arabiriminden yöntemini çağırabilirsiniz. Bu tasarım, uygulama boşta olduğunda bile Uygulama Yapılandırmasına gönderilen isteklerden kaçınmaktır. Çağrıyı, TryRefreshAsync uygulamanızı etkin olarak kabul ettiyebilirsiniz. Örneğin, gelen iletiyi, siparişi veya karmaşık bir görevin yinelemesini işleyebilirsiniz. Ayrıca, uygulamanız her zaman etkinse bir zamanlayıcıda da olabilir. Bu örnekte Enter tuşuna TryRefreshAsync basarak çağrısında bulunduruz. Çağrı herhangi bir nedenle başarısız TryRefreshAsync olsa bile, uygulamanın önbelleğe alınmış yapılandırmayı kullanmaya devam edeceğini unutmayın. Yapılandırılan önbellek süre sonu süresi sona erer ve çağrı, uygulama etkinliğiniz tarafından yeniden tetiklendiğinde TryRefreshAsync başka bir deneme yapılır. Çağrısı, yapılandırılan önbellek süre sonu süresi dolmadan önce bir operasyon değil, bu nedenle sık çağrılsa bile performans etkisi TryRefreshAsync en düşük düzeydedir.

Uygulamayı yerel olarak 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.

    Komut istemini Windows aşağıdaki komutu çalıştırın:

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

    Aşağıdaki komutu Windows PowerShell ç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. Konsol 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 anahtarın değerini güncelleştirin.

    Anahtar Değer
    TestApp:Ayarlar:Message Azure Uygulama Yapılandırması Verileri - Güncelleştirildi
  5. Çalışan uygulamaya geri dönüp Enter tuşuna basarak yenilemeyi tetikleyin 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 belirtiliyorken yöntemi kullanılarak önbellek süre sonu 10 saniye olarak ayarlandı, yapılandırma ayarına yönelik değer yalnızca bu ayar için son yenilemeden bu yana en az 10 saniye geçmişse SetCacheExpiration güncelleştirilir.

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ı'.NET Framework dinamik olarak yenilemek için uygulama uygulamanızı etkinleştirdiniz. ASP.NET Web Uygulamasında (.NET Framework) dinamik yapılandırmayı etkinleştirmeyi öğrenmek için sonraki öğreticiye devam edin:

Uygulama Yapılandırmasına erişimi basit hale getirmek için Azure yönetilen kimliğini kullanmayı öğrenmek için sonraki öğreticiye devam edin: