Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 założeniami programu .NET Framework ustawienia aplikacji mogą być odświeżane tylko po ponownym uruchomieniu aplikacji. Dostawca biblioteki .NET Standard dla usługi App Configuration. Obsługuje ona buforowanie i odświeżanie konfiguracji dynamicznie bez ponownego uruchamiania aplikacji. W tym samouczku pokazano, jak zaimplementować dynamiczne aktualizacje konfiguracji w aplikacji ASP.NET Web Forms. Ta sama technika dotyczy aplikacji MVC programu .NET Framework.
Z tego samouczka dowiesz się, jak wykonywać następujące działania:
- Skonfiguruj aplikację sieci web ASP.NET, aby zaktualizować jej konfigurację w odpowiedzi na zmiany w sklepie konfiguracyjnym App Configuration.
- Wstrzykiwanie najnowszej konfiguracji w żądaniach do aplikacji.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz je bezpłatnie.
- Magazyn usługi App Configuration, jak pokazano w samouczku dotyczącym tworzenia magazynu konfiguracji aplikacji.
- w programie Visual Studio
- .NET Framework 4.7.2 lub nowszy
Dodawanie kluczy i wartości
Dodaj następujące wartości klucza do magazynu App Configuration i pozostaw Etykieta oraz Typ zawartości z ich wartościami domyślnymi. Aby uzyskać więcej informacji na temat dodawania parametrów klucz-wartość do magazynu przy użyciu portalu Azure lub interfejsu wiersza polecenia, przejdź do Create a key-value.
| Klawisz | Wartość |
|---|---|
| TestApp:Ustawienia:Kolor tła | biały |
| TestApp:Ustawienia:FontColor | Czarny |
| TestApp:Ustawienia:FontSize | 40 |
| TestApp:Ustawienia:Wiadomość | Dane z konfiguracji aplikacji Azure |
Tworzenie aplikacji internetowej ASP.NET
Uruchom program Visual Studio i wybierz pozycję Utwórz nowy projekt.
Wybierz pozycję ASP.NET Aplikacja internetowa (.NET Framework) z listy szablonów projektu i 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.
W obszarze Create a new ASP.NET Web Application (Utwórz nową aplikację internetową) wybierz pozycję Web Forms (Formularze sieci Web). 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ących pakietów NuGet.
- Microsoft.Extensions.Configuration.AzureAppConfiguration
- Azure.Identity (tożsamość azure)
Otwórz plik Global.asax.cs i dodaj następujące przestrzenie nazw.
using Azure.Identity; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.AzureAppConfiguration;Dodaj do klasy następujące statyczne zmienne
Globalskładowe.public static IConfiguration Configuration; private static IConfigurationRefresher _configurationRefresher;Dodaj metodę
Application_StartdoGlobalklasy . Jeśli metoda już istnieje, dodaj do niej następujący kod.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(); }Metoda
Application_Startjest wywoływana przy pierwszym żądaniu do aplikacji internetowej. Jest ona wywoływana tylko raz podczas cyklu życia aplikacji. W związku z tym dobrym miejscem do zainicjowania obiektuIConfigurationi załadowania danych z konfiguracji aplikacji.Wewnątrz metody
ConfigureRefreshwywołasz metodęRegisterAll, aby poinstruować dostawcę konfiguracji aplikacji o ponownym załadowaniu całej konfiguracji ilekroć wykryje zmianę w dowolnej z wybranych wartości kluczy (rozpoczynające się od TestApp: i bez etykiety). Aby uzyskać więcej informacji na temat monitorowania zmian konfiguracji, zobacz Najlepsze rozwiązania dotyczące odświeżania konfiguracji.Metoda
SetRefreshIntervalokreś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 5 minut. Zmniejsza ona potencjalną liczbę żądań wysyłanych do sklepu App Configuration.Dodaj metodę
Application_BeginRequestdoGlobalklasy . Jeśli metoda już istnieje, dodaj do niej następujący kod.protected void Application_BeginRequest(object sender, EventArgs e) { _ = _configurationRefresher.TryRefreshAsync(); }ConfigureRefreshWywołanie samej metody nie spowoduje automatycznego odświeżenia konfiguracji. Metoda jest wywoływanaTryRefreshAsyncna początku każdego żądania, aby zasygnalizować odświeżanie. Ten projekt gwarantuje, że aplikacja wysyła żądania tylko do usługi App Configuration, gdy aktywnie odbiera żądania.Wywołanie
TryRefreshAsyncjest wywoływane jako no-op przed upływem skonfigurowanego interwału odświeżania, więc jego wpływ na wydajność jest minimalny. Po wysłaniu żądania do usługi App Configuration, ponieważ nie czekasz na zadanie, konfiguracja jest odświeżona asynchronicznie bez blokowania wykonywania bieżącego żądania. Bieżące żądanie może nie uzyskać zaktualizowanych wartości konfiguracji, ale kolejne żądania będą wykonywać.Jeśli wywołanie
TryRefreshAsynczakończy się niepowodzeniem z jakiegokolwiek powodu, aplikacja będzie nadal używać buforowanej konfiguracji. Kolejna próba zostanie podjęta po ponownym przekazaniu skonfigurowanego interwału odświeżania, aTryRefreshAsyncwywołanie zostanie wyzwolone przez nowe żądanie do aplikacji.
Korzystanie z najnowszych danych konfiguracji
Otwórz Default.aspx i zastąp jego zawartość następującym znacznikiem. Upewnij się, że atrybut Dziedziczy jest zgodny z przestrzenią nazw i nazwą klasy aplikacji.
<%@ 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>Otwórz Default.aspx.cs i zaktualizuj go przy użyciu następującego kodu.
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; } } }
Kompilowanie i uruchamianie aplikacji
Ustaw zmienną środowiskową.
Ustaw zmienną środowiskową o nazwie
Endpointna punkt końcowy magazynu App Configuration znalezionego w obszarze Przegląd sklepu w witrynie Azure Portal.Jeśli używasz wiersza polecenia systemu Windows, uruchom następujące polecenie i uruchom ponownie wiersz polecenia, aby zezwolić na wprowadzenie zmian:
setx Endpoint "<endpoint-of-your-app-configuration-store>"Jeśli używasz programu PowerShell, uruchom następujące polecenie:
$Env:Endpoint = "<endpoint-of-your-app-configuration-store>"Jeśli używasz systemu macOS lub Linux, uruchom następujące polecenie:
export Endpoint='<endpoint-of-your-app-configuration-store>'Uruchom ponownie program Visual Studio, aby umożliwić zastosowanie zmiany.
Naciśnij Ctrl + F5, aby skompilować i uruchomić aplikację internetową.
W witrynie Azure Portal przejdź do Eksploratora konfiguracji magazynu Usługi App Configuration i zaktualizuj wartość następujących kluczy.
Klawisz Wartość TestApp:Ustawienia:Kolor tła Zielony TestApp:Ustawienia:FontColor Jasny szary TestApp:Ustawienia:Wiadomość Dane z usługi Azure App Configuration — teraz z aktualizacjami na żywo! Odśwież stronę przeglądarki, aby zobaczyć nowe ustawienia konfiguracji. Może być konieczne odświeżenie więcej niż raz, aby zmiany zostały odzwierciedlone lub zmienić interwał odświeżania na mniej niż 5 minut.
Uwaga
Przykładowy kod używany w tym samouczku można pobrać z repozytorium GitHub usługi Azure App Configuration.
Uprzątnij zasoby
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 niewłaściwej grupy zasobów lub 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.
- Poproszono Cię 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ę ASP.NET Web Forms w celu dynamicznego odświeżania ustawień konfiguracji z poziomu usługi App Configuration. Aby dowiedzieć się, jak włączyć konfigurację dynamiczną w aplikacji .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: