Samouczek: używanie konfiguracji dynamicznej w aplikacji .NET Framework
Dane z usługi App Configuration można załadować jako ustawienia aplikacji w aplikacji .NET Framework. Aby uzyskać więcej informacji, zobacz przewodnik Szybki start. Jednak zgodnie z projektem programu .NET Framework ustawienia aplikacji mogą być odświeżane tylko po ponownym uruchomieniu aplikacji. Dostawca .NET usługi App Configuration to biblioteka .NET Standard. Obsługuje ona buforowanie i odświeżanie konfiguracji dynamicznie bez ponownego uruchamiania aplikacji. W tym samouczku pokazano, jak wdrożyć dynamiczne aktualizacje konfiguracji w aplikacji konsolowej programu .NET Framework.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Skonfiguruj aplikację .NET Framework, aby zaktualizować jej konfigurację w odpowiedzi na zmiany w sklepie App Configuration.
- Wstrzykiwanie najnowszej konfiguracji w aplikacji.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz je bezpłatnie.
- Magazyn usługi App Configuration. Utwórz magazyn.
- Program Visual Studio
- .NET Framework 4.7.2 lub nowszy
Dodawanie wartości klucza
Dodaj następującą wartość klucza do magazynu App Configuration i pozostaw wartości domyślne Etykieta i Typ zawartości. Aby uzyskać więcej informacji na temat dodawania wartości klucz-wartości do magazynu przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia, przejdź do artykułu Create a key-value (Tworzenie wartości klucza).
Key | Wartość |
---|---|
TestApp:Settings:Message | Dane z konfiguracji aplikacja systemu Azure |
Tworzenie aplikacji konsolowej .NET Framework
Uruchom program Visual Studio i wybierz pozycję Utwórz nowy projekt.
W obszarze Tworzenie nowego projektu przefiltruj typ projektu Konsola i wybierz pozycję Aplikacja konsolowa (.NET Framework) przy użyciu języka C# z listy szablonów projektu. Naciśnij przycisk Dalej.
W obszarze Konfigurowanie nowego projektu wprowadź nazwę projektu. W obszarze Framework wybierz pozycję .NET Framework 4.7.2 lub nowszy. Kliknij przycisk Utwórz.
Ponowne ładowanie danych z usługi App Configuration
Kliknij projekt prawym przyciskiem myszy i wybierz polecenie Zarządzaj pakietami NuGet. Na karcie Przeglądaj wyszukaj i dodaj do projektu najnowszą wersję następującego pakietu NuGet.
Microsoft.Extensions.Configuration.AzureAppConfiguration
Otwórz Program.cs i dodaj następujące przestrzenie nazw.
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.AzureAppConfiguration;
Dodaj dwie zmienne do przechowywania obiektów związanych z konfiguracją.
private static IConfiguration _configuration; private static IConfigurationRefresher _refresher;
Zaktualizuj metodę
Main
w celu nawiązania połączenia z usługą App Configuration przy użyciu określonych opcji odświeżania.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(); }
W metodzie
ConfigureRefresh
klucz w magazynie usługi App Configuration jest zarejestrowany do monitorowania zmian. MetodaRegister
ma opcjonalny parametrrefreshAll
logiczny, który może służyć do wskazania, czy wszystkie wartości konfiguracji powinny zostać odświeżone, jeśli zarejestrowany klucz ulegnie zmianie. W tym przykładzie zostanie odświeżony tylko klucz TestApp:Settings:Message . MetodaSetCacheExpiration
określa minimalny czas, który musi upłynąć przed wprowadzeniem nowego żądania do usługi App Configuration, aby sprawdzić, czy nie wprowadzono żadnych zmian konfiguracji. W tym przykładzie zastąpisz domyślny czas wygaśnięcia 30 sekund, określając zamiast tego czas 10 sekund w celach demonstracyjnych.Dodaj metodę o nazwie
PrintMessage()
, która wyzwala odświeżanie danych konfiguracji z usługi App Configuration.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!"); }
ConfigureRefresh
Wywołanie samej metody nie spowoduje automatycznego odświeżenia konfiguracji. Wywołasz metodęTryRefreshAsync
z interfejsuIConfigurationRefresher
, aby wyzwolić odświeżanie. Ten projekt polega na unikaniu żądań wysyłanych do usługi App Configuration nawet wtedy, gdy aplikacja jest bezczynna. Możesz dołączyć wywołanieTryRefreshAsync
, w którym rozważasz aktywną aplikację. Może to być na przykład podczas przetwarzania komunikatu przychodzącego, zamówienia lub iteracji złożonego zadania. Może również znajdować się w czasomierzu, jeśli aplikacja jest aktywna przez cały czas. W tym przykładzie wywołasz wywołanieTryRefreshAsync
po naciśnięciu Enter. Należy pamiętać, że nawet jeśli wywołanieTryRefreshAsync
zakończy się niepowodzeniem z jakiegokolwiek powodu, aplikacja będzie nadal używać buforowanej konfiguracji. Kolejna próba zostanie podjęta po upływie skonfigurowanego czasu wygaśnięcia pamięci podręcznej, aTryRefreshAsync
wywołanie zostanie ponownie wyzwolone przez działanie aplikacji. WywołanieTryRefreshAsync
jest operacją no-op przed upływem skonfigurowanego czasu wygaśnięcia pamięci podręcznej, więc jej wpływ na wydajność jest minimalny, nawet jeśli jest często wywoływany.
Lokalne kompilowanie i uruchamianie aplikacji
Ustaw zmienną środowiskową o nazwie ConnectionString na klucz tylko do odczytu parametry połączenia uzyskany podczas tworzenia magazynu usługi App Configuration.
Jeśli używasz wiersza polecenia systemu Windows, uruchom następujące polecenie:
setx ConnectionString "<connection-string-of-your-app-configuration-store>"
Jeśli używasz programu Windows PowerShell, uruchom następujące polecenie:
$Env:ConnectionString = "<connection-string-of-your-app-configuration-store>"
Uruchom ponownie program Visual Studio, aby umożliwić zastosowanie zmiany.
Naciśnij Ctrl + F5, aby skompilować i uruchomić aplikację konsolową.
W witrynie Azure Portal przejdź do Eksploratora konfiguracji magazynu usługi App Configuration i zaktualizuj wartość następującego klucza.
Key Wartość TestApp:Settings:Message Dane z konfiguracji aplikacja systemu Azure — zaktualizowano Po powrocie do uruchomionej aplikacji naciśnij Enter, aby wyzwolić odświeżenie i wydrukować zaktualizowaną wartość w wierszu polecenia lub oknie programu PowerShell.
Uwaga
Ponieważ czas wygaśnięcia pamięci podręcznej został ustawiony na 10 sekund przy użyciu
SetCacheExpiration
metody podczas określania konfiguracji operacji odświeżania, wartość ustawienia konfiguracji zostanie zaktualizowana tylko wtedy, gdy od czasu ostatniego odświeżenia tego ustawienia upłynął co najmniej 10 sekund.
Czyszczenie zasobów
Jeśli nie chcesz nadal korzystać z zasobów utworzonych w tym artykule, usuń utworzoną tutaj grupę zasobów, aby uniknąć naliczania opłat.
Ważne
Usunięcie grupy zasobów jest nieodwracalne. Grupa zasobów i wszystkie zasoby w niej są trwale usuwane. Upewnij się, że nie usuniesz przypadkowo nieprawidłowej grupy zasobów ani zasobów. Jeśli zasoby dla tego artykułu zostały utworzone w grupie zasobów zawierającej inne zasoby, które chcesz zachować, usuń każdy zasób oddzielnie z odpowiedniego okienka zamiast usuwać grupę zasobów.
- Zaloguj się do witryny Azure Portal i wybierz pozycję Grupy zasobów.
- W polu Filtruj według nazwy wprowadź nazwę grupy zasobów.
- Na liście wyników wybierz nazwę grupy zasobów, aby wyświetlić przegląd.
- Wybierz pozycję Usuń grupę zasobów.
- Zobaczysz prośbę o potwierdzenie usunięcia grupy zasobów. Wprowadź nazwę grupy zasobów, aby potwierdzić, a następnie wybierz pozycję Usuń.
Po kilku chwilach grupa zasobów i wszystkie jej zasoby zostaną usunięte.
Następne kroki
W tym samouczku włączono aplikację .NET Framework w celu dynamicznego odświeżania ustawień konfiguracji z poziomu usługi App Configuration. Aby dowiedzieć się, jak włączyć konfigurację dynamiczną w aplikacji internetowej ASP.NET (.NET Framework), przejdź do następnego samouczka:
Aby dowiedzieć się, jak używać tożsamości zarządzanej platformy Azure w celu usprawnienia dostępu do usługi App Configuration, przejdź do następnego samouczka: