Zelfstudie: Dynamische configuratie gebruiken in ASP.NET webtoepassing (.NET Framework)
Gegevens uit App Configuration kunnen als app-Instellingen in een .NET Framework worden geladen. Zie de snelstart voor meer informatie. Zoals is ontworpen door de .NET Framework, kan de app-Instellingen alleen worden vernieuwd wanneer de toepassing opnieuw wordt gestart. De App Configuration .NET-provider is een .NET Standard-bibliotheek. Het biedt ondersteuning voor het dynamisch in de caching en vernieuwen van de configuratie zonder dat de toepassing opnieuw moet worden opgestart. Deze zelfstudie laat zien hoe u dynamische configuratie-updates kunt implementeren in een ASP.NET Web Forms toepassing. Dezelfde techniek is van toepassing op .NET Framework MVC-toepassingen.
In deze zelfstudie leert u het volgende:
- Stel uw webtoepassing ASP.NET om de configuratie bij te werken als reactie op wijzigingen in een App Configuration store.
- De meest recente configuratie in aanvragen in uw toepassing injecteren.
Vereisten
- Azure-abonnement: u kunt een gratis abonnement nemen
- Visual Studio
- .NET Framework 4.7.2 of hoger
Een App Configuration-archief maken
Als u een nieuw App Configuration-archief wilt maken, moet u zich eerst aanmelden bij de Azure-portal. Selecteer in de linkerbovenhoek van de startpagina de optie Een resource maken. Voer in het vak Marketplace doorzoeken App Configuration in en selecteer Invoeren.

Selecteer App Configuration in de zoekresultaten en selecteer vervolgens Maken.

Voer in het deelvenster App Configuration maken de volgende instellingen in:
Instelling Voorgestelde waarde Beschrijving Abonnement Uw abonnement Selecteer het Azure-abonnement dat u wilt gebruiken om App Configuration te testen. Als uw account maar één abonnement heeft, wordt dit automatisch geselecteerd en wordt de lijst Abonnement niet weergegeven. Resourcegroep AppConfigTestResources Selecteer of maak een resourcegroep voor de resource van het App Configuration-archief. Deze groep is handig voor het ordenen van meerdere resources die u mogelijk op een bepaald moment wilt verwijderen door resourcegroep te verwijderen. Zie Resourcegroepen gebruiken om Azure-resources te beheren voor meer informatie. Resourcenaam Wereldwijd unieke naam Voer een unieke resourcenaam in voor de resource van het App Configuration-archief. De naam moet een tekenreeks zijn van 5 tot 50 tekens en mag alleen cijfers, letters en -bevatten. De naam mag niet beginnen of eindigen met-.Locatie US - centraal Gebruik Locatie om de geografische locatie op te geven waar het app-configuratiearchief wordt gehost. Voor de beste prestaties maakt u de resource in dezelfde regio als de andere onderdelen van uw toepassing. Prijscategorie Gratis Selecteer de gewenste prijscategorie. Ga voor meer informatie naar de pagina met prijzen voor App Configuration. Selecteer Beoordelen en maken om de instellingen te valideren.
Selecteer Maken. De implementatie kan enkele minuten duren.
Als de implementatie is voltooid, gaat u naar de resource App Configuration. Selecteer Instellingen > Toegangssleutels. Noteer de verbindingsreeks van de primaire alleen-lezensleutel. U hebt de verbindingsreeks later nodig voor de configuratie van uw toepassing, zodat deze kan communiceren met het App Configuration-archief dat u hebt gemaakt.
Selecteer Operations > Configuration Explorer > > Sleutelwaarde maken om de volgende sleutelwaarden toe te voegen:
Sleutel Waarde TestApp:Settings:BackgroundColor Wit TestApp:Settings:FontColor Zwart TestApp:Settings:FontSize 40 TestApp:Settings:Message Gegevens van Azure App Configuration TestApp:Settings:Sentinel v1 Laat Label en Inhoudstype leeg.
Een webtoepassing ASP.NET maken
Start Visual Studio en selecteer Een nieuw project maken.
Selecteer ASP.NET webtoepassing (.NET Framework) met C# in de lijst met projectsjablonen en druk op Volgende.
Voer in Uw nieuwe project configureren een projectnaam in. Selecteer onder Framework.NET Framework 4.7.2 of hoger. Kies Maken.
Selecteer in Een nieuwe ASP.NET webtoepassing maken de Web Forms. Kies Maken.
Gegevens opnieuw laden vanuit app-configuratie
Klik met de rechtermuisknop op uw project en selecteer NuGet-pakketten beheren. Zoek op het tabblad Bladeren naar de nieuwste versie van het volgende NuGet-pakket en voeg deze toe aan uw project.
Microsoft.Extensions.Configuration.AzureAppConfiguration
Open het bestand Global.asax.cs en voeg de volgende naamruimten toe.
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.AzureAppConfiguration;Voeg de volgende statische lidvariabelen toe aan de
Globalklasse .public static IConfiguration Configuration; private static IConfigurationRefresher _configurationRefresher;Voeg een
Application_Startmethode toe aan de klasseGlobal. Als de methode al bestaat, voegt u er de volgende code aan toe.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(); }De
Application_Startmethode wordt aangeroepen bij de eerste aanvraag voor uw webtoepassing. Deze wordt slechts één keer aangeroepen tijdens de levenscyclus van de toepassing. Daarom is het een goede plaats om uw object te initialiserenIConfigurationen gegevens te laden uit App Configuration.In de
ConfigureRefreshmethode wordt een sleutel in uw App Configuration voor wijzigingsbewaking geregistreerd. DerefreshAllparameter voor de methode geeft aan dat alleRegisterconfiguratiewaarden moeten worden vernieuwd als de geregistreerde sleutel wordt gewijzigd. In dit voorbeeld is de sleutel TestApp:Instellingen:Sentinel een Sentinel-sleutel die u bij werkt nadat u de wijziging van alle andere sleutels hebt voltooid. Wanneer er een wijziging wordt gedetecteerd, vernieuwt uw toepassing alle configuratiewaarden. Deze aanpak zorgt voor de consistentie van de configuratie in uw toepassing in vergelijking met het controleren van alle sleutels op wijzigingen.De methode geeft de minimale tijd aan die moet verstreken voordat een nieuwe aanvraag wordt ingediend bij App Configuration om te controleren op
SetCacheExpirationconfiguratiewijzigingen. In dit voorbeeld overschrijven we de standaardverlooptijd van 30 seconden en geeft u in plaats daarvan een tijd van 5 minuten op. Het vermindert het potentiële aantal aanvragen naar uw App Configuration winkel.Voeg een
Application_BeginRequestmethode toe aan de klasseGlobal. Als de methode al bestaat, voegt u er de volgende code aan toe.protected void Application_BeginRequest(object sender, EventArgs e) { _ = _configurationRefresher.TryRefreshAsync(); }Als u
ConfigureRefreshalleen de methode aanroept, wordt de configuratie niet automatisch vernieuwd. U roept deTryRefreshAsyncmethode aan het begin van elke aanvraag om een vernieuwing te signaleren. Dit ontwerp zorgt ervoor dat uw toepassing alleen aanvragen naar App Configuration wanneer deze actief aanvragen ontvangt.Aanroepen is een no-op voordat de geconfigureerde vervaltijd van de cache is verstreken, zodat de invloed op
TryRefreshAsyncde prestaties minimaal is. Wanneer een aanvraag wordt ingediend bij App Configuration, omdat u niet op de taak wacht, wordt de configuratie asynchroon vernieuwd zonder dat de uitvoering van de huidige aanvraag wordt geblokkeerd. De huidige aanvraag krijgt mogelijk niet de bijgewerkte configuratiewaarden, maar de volgende aanvragen wel.Als de aanroep om een of andere reden mislukt, blijft uw toepassing de configuratie in
TryRefreshAsyncde cache gebruiken. Er wordt een andere poging gedaan wanneer de geconfigureerde vervaltijd van de cache opnieuw is verstreken en de aanroep wordt geactiveerd door een nieuweTryRefreshAsyncaanvraag voor uw toepassing.
De meest recente configuratiegegevens gebruiken
Open Default.aspx en vervang de inhoud door de volgende markeringen. Zorg ervoor dat het kenmerk Overnemen overeenkomt met de naamruimte en de klassenaam van uw toepassing.
<%@ 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>Open Default.aspx.cs en werk het bestand bij met de volgende code.
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; } } }
De toepassing bouwen en uitvoeren.
Stel een omgevingsvariabele met de naam ConnectionString in op de alleen-connection string die is verkregen tijdens het maken App Configuration store.
Als u de Windows-opdrachtprompt gebruikt, moet u de volgende opdracht uitvoeren:
setx ConnectionString "connection-string-of-your-app-configuration-store"Als u Windows PowerShell gebruikt, voert u de volgende opdracht uit:
$Env:ConnectionString = "connection-string-of-your-app-configuration-store"Start Visual Studio opnieuw zodat de wijziging kan worden doorgevoerd.
Druk op Ctrl + F5 om de webtoepassing te bouwen en uit te voeren.

Navigeer Azure Portal de configuratieverkenner van uw App Configuration store en werk de waarde van de volgende sleutels bij. Vergeet niet om de Sentinel-sleutel testApp:Instellingen:Sentinel bij te werken.
Sleutel Waarde TestApp:Settings:BackgroundColor Green TestApp:Settings:FontColor LightGray TestApp:Settings:Message Gegevens uit Azure-app-configuratie - nu met live updates! TestApp:Settings:Sentinel v2 Vernieuw de browserpagina om de nieuwe configuratie-instellingen te zien. Mogelijk moet u meer dan één keer vernieuwen om de wijzigingen weer te geven of de verlooptijd van de cache te wijzigen in minder dan 5 minuten.

Notitie
U kunt de voorbeeldcode die in deze zelfstudie wordt gebruikt, downloaden uit Azure App Configuration GitHub -repo.
Resources opschonen
Als u niet door wilt gaan met de resources die in dit artikel zijn gemaakt, verwijdert u de resourcegroep die u hier hebt gemaakt om kosten te voorkomen.
Belangrijk
Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt. De resourcegroep en alle resources daarin worden permanent verwijderd. Zorg ervoor dat u niet per ongeluk de verkeerde resourcegroep of resources verwijdert. Als u de resources voor dit artikel in een resourcegroep hebt gemaakt die andere resources bevat die u wilt behouden, moet u elke resource afzonderlijk verwijderen uit het deelvenster in plaats van dat u de resourcegroep verwijdert.
- Meld u aan bij de Azure-portal en selecteer Resourcegroepen.
- Voer de naam van de resourcegroep in het vak Filteren op naam in.
- Selecteer in de resultatenlijst de resourcegroepnaam om een overzicht te bekijken.
- Selecteer Resourcegroep verwijderen.
- U wordt gevraagd om het verwijderen van de resourcegroep te bevestigen. Voer de naam van de resourcegroep in ter bevestiging en selecteer Verwijderen.
Na enkele ogenblikken worden de resourcegroep en alle bijbehorende resources verwijderd.
Volgende stappen
In deze zelfstudie hebt u uw ASP.NET Web Forms ingeschakeld om configuratie-instellingen dynamisch te vernieuwen vanuit App Configuration. Als u wilt weten hoe u dynamische configuratie in een .NET Framework inschakelen, gaat u verder met de volgende zelfstudie:
Als u wilt weten hoe u een beheerde Azure-identiteit kunt gebruiken om de toegang tot uw App Configuration, gaat u verder met de volgende zelfstudie: