Självstudie: Använda dynamisk konfiguration i en ASP.NET-webbapp (.NET Framework)
Data från App Configuration kan läsas in som app Inställningar i ett .NET Framework program. Mer information finns i snabbstarten. Men som har utformats av .NET Framework kan app-Inställningar bara uppdateras när programmet startas om. Den App Configuration .NET-providern är ett .NET-standardbibliotek. Den stöder cachelagring och uppdatering av konfiguration dynamiskt utan omstart av programmet. Den här självstudien visar hur du kan implementera dynamiska konfigurationsuppdateringar i ASP.NET Web Forms program. Samma metod gäller för .NET Framework MVC-program.
I den här guiden får du lära dig att:
- Konfigurera din ASP.NET för att uppdatera dess konfiguration som svar på ändringar i ett App Configuration lager.
- Mata in den senaste konfigurationen i begäranden till ditt program.
Förutsättningar
- Azure-prenumeration – skapa en kostnadsfritt
- Visual Studio
- .NET Framework 4.7.2 eller senare
Skapa en App Configuration butik
Om du vill skapa ett nytt konfigurations Arkiv för appen loggar du in på Azure Portal. I det övre vänstra hörnet på Start sidan väljer du skapa en resurs. I rutan Sök på Marketplace anger du app-konfiguration och väljer RETUR.

Välj app-konfiguration från Sök resultaten och välj sedan skapa.

I fönstret skapa app-konfiguration anger du följande inställningar:
Inställning Föreslaget värde Beskrivning Prenumeration Din prenumeration Välj den Azure-prenumeration du vill använda för att testa App Configuration. Om ditt konto bara har en prenumeration väljs den automatiskt och ingen prenumerations lista visas. Resursgrupp AppConfigTestResources Välj eller skapa en resurs grupp för din app Configuration Store-resurs. Den här gruppen är användbar för att organisera flera resurser som du kanske vill ta bort samtidigt genom att ta bort resurs gruppen. Mer information finns i använda resurs grupper för att hantera dina Azure-resurser. Resurs namn Globalt unikt namn Ange ett unikt resurs namn som ska användas för appens konfigurations Arkiv resurs. Namnet måste vara en sträng mellan 5 och 50 tecken och får bara innehålla siffror, bokstäver och -tecknet. Namnet får inte börja eller sluta med-specialtecknet.Plats USA, centrala Använd Plats till att ange den geografiska plats där appkonfigurationsarkivets resurs finns. För bästa prestanda skapar du resursen i samma region som andra komponenter i ditt program. Prisnivå Kostnadsfri Välj önskad pris nivå. Mer information finns på sidan med prissättning för app-konfiguration. Välj Granska + skapa för att validera inställningarna.
Välj Skapa. Distributionen kan ta några minuter.
När distributionen är klar går du till appen konfigurations resurs. Välj Inställningar > Åtkomstnycklar. Anteckna den primära skrivskyddade nyckel anslutnings strängen. Du kommer att använda den här anslutnings strängen senare för att konfigurera programmet för att kommunicera med det app-konfigurations lager som du har skapat.
Välj Operations > Configuration Explorer > Create > Key-value (Skapa nyckelvärde) för att lägga till följande nyckelvärden:
Tangent Värde TestApp:Settings:BackgroundColor Vit TestApp:Settings:FontColor Svart TestApp:Settings:FontSize 40 TestApp:Inställningar:Meddelande Data från Azure App Configuration TestApp:Inställningar:Sentinel v1 Lämna Etikett och Innehållstyp tomma.
Skapa en ASP.NET webbapp
Starta Visual Studio och välj Skapa ett nytt projekt.
Välj ASP.NET Web Application (.NET Framework) with C# (Webbprogram (.NET Framework) med C# från listan med projektmallar och tryck på Nästa.
I Konfigurera det nya projektet anger du ett projektnamn. Under Ramverk väljer du .NET Framework 4.7.2 eller senare. Tryck på Skapa.
I Skapa ett nytt ASP.NET-webbprogram väljer du Web Forms. Tryck på Skapa.
Läsa in data på nytt från App Configuration
Högerklicka på projektet och välj Hantera NuGet-paket. På fliken Bläddra söker du efter och lägger till den senaste versionen av följande NuGet-paket i projektet.
Microsoft.Extensions.Configuration.AzureAppConfiguration
Öppna filen Global.asax.cs och lägg till följande namnområden.
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.AzureAppConfiguration;Lägg till följande statiska medlemsvariabler i
Globalklassen .public static IConfiguration Configuration; private static IConfigurationRefresher _configurationRefresher;Lägg till
Application_Starten -metod iGlobalklassen . Om metoden redan finns lägger du till följande kod i den.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(); }Metoden
Application_Startanropas på den första begäran till webbappen. Den anropas bara en gång under programmets livscykel. Därför är det en bra plats att initiera objektetIConfigurationoch läsa in data från App Configuration.I metoden
ConfigureRefreshregistreras en nyckel i ditt App Configuration för ändringsövervakning. ParameternrefreshAlltill metoden anger att allaRegisterkonfigurationsvärden ska uppdateras om den registrerade nyckeln ändras. I det här exemplet är nyckeln TestApp:Inställningar:Sentinel en sentinel-nyckel som du uppdaterar när du har slutfört ändringen av alla andra nycklar. När en ändring identifieras uppdaterar programmet alla konfigurationsvärden. Den här metoden hjälper till att säkerställa konsekvensen i konfigurationen i ditt program jämfört med att övervaka alla nycklar för ändringar.Metoden anger den minsta tid som måste gå innan en ny begäran görs för
SetCacheExpirationatt App Configuration för att söka efter konfigurationsändringar. I det här exemplet åsidosätter du standardförfallotiden på 30 sekunder och anger i stället en tid på 5 minuter. Det minskar det potentiella antalet begäranden som görs till din App Configuration store.Lägg till
Application_BeginRequesten -metod iGlobalklassen . Om metoden redan finns lägger du till följande kod i den.protected void Application_BeginRequest(object sender, EventArgs e) { _ = _configurationRefresher.TryRefreshAsync(); }Om du
ConfigureRefreshbara anropar metoden uppdateras inte konfigurationen automatiskt. Du anroparTryRefreshAsyncmetoden i början av varje begäran för att signalera en uppdatering. Den här designen säkerställer att ditt program endast skickar begäranden App Configuration när det aktivt tar emot begäranden.Anrop
TryRefreshAsyncär en no-op innan den konfigurerade förfallotiden för cachen förfaller, så dess prestandapåverkan är minimal. När en begäran görs till App Configuration, eftersom du inte väntar på uppgiften, uppdateras konfigurationen asynkront utan att blockera körningen av den aktuella begäran. Den aktuella begäran kanske inte får de uppdaterade konfigurationsvärdena, men efterföljande begäranden kommer att göra det.Om
TryRefreshAsyncanropet misslyckas av någon anledning fortsätter programmet att använda den cachelagrade konfigurationen. Ett nytt försök görs när den konfigurerade cachens förfallotid har passerat igen och anropet utlösesTryRefreshAsyncav en ny begäran till programmet.
Använda senaste konfigurationsdata
Öppna Default.aspx och ersätt innehållet med följande kod. Kontrollera att attributet Ärver matchar namnområdet och klassnamnet för ditt program.
<%@ 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>Öppna Default.aspx.cs och uppdatera den med följande kod.
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; } } }
Skapa och kör appen
Ange en miljövariabel med namnet ConnectionString till den skrivskyddade nyckelanslutningssträngen som erhölls när App Configuration arkivet skapades.
Om du använder Windows kommandotolken kör du följande kommando:
setx ConnectionString "connection-string-of-your-app-configuration-store"Om du använder Windows PowerShell kör du följande kommando:
$Env:ConnectionString = "connection-string-of-your-app-configuration-store"Starta Visual Studio så att ändringen börjar gälla.
Tryck på Ctrl + F5 för att skapa och köra webbappen.

I Azure Portal navigerar du till Configuration Explorer för ditt App Configuration store och uppdaterar värdet för följande nycklar. Kom ihåg att uppdatera sentinel-nyckeln TestApp:Inställningar:Sentinel till sist.
Tangent Värde TestApp:Settings:BackgroundColor Green TestApp:Settings:FontColor LightGray TestApp:Inställningar:Meddelande Data från Azure App Configuration – nu med live-uppdateringar! TestApp:Inställningar:Sentinel v2 Uppdatera webbläsarsidan för att visa de nya konfigurationsinställningarna. Du kan behöva uppdatera mer än en gång för att ändringarna ska återspeglas eller ändra förfallotiden för cacheminnet till mindre än 5 minuter.

Anteckning
Du kan ladda ned exempelkoden som används i den här självstudien från Azure App Configuration GitHub lagringsplatsen.
Rensa resurser
Om du inte vill fortsätta använda resurserna som skapats i den här artikeln tar du bort resurs gruppen som du skapade här för att undvika avgifter.
Viktigt
Att ta bort en resursgrupp kan inte ångras. Resurs gruppen och alla resurser i den tas bort permanent. Var noga så att du inte tar bort fel resursgrupp eller resurser av misstag. Om du har skapat resurserna för den här artikeln i en resurs grupp som innehåller andra resurser som du vill behålla, tar du bort varje resurs separat från dess respektive fönster i stället för att ta bort resurs gruppen.
- Logga in på Azure Portaloch välj resurs grupper.
- I rutan Filtrera efter namn anger du namnet på din resurs grupp.
- I listan resultat väljer du resurs gruppens namn för att se en översikt.
- Välj Ta bort resursgrupp.
- Du blir ombedd att bekräfta borttagningen av resursgruppen. Ange namnet på resurs gruppen som ska bekräftas och välj ta bort.
Efter en liten stund tas resurs gruppen och alla dess resurser bort.
Nästa steg
I den här självstudien har du aktiverat ASP.NET Web Forms för att dynamiskt uppdatera konfigurationsinställningarna från App Configuration. Om du vill lära dig hur du aktiverar dynamisk konfiguration .NET Framework en app fortsätter du till nästa självstudie:
Om du vill lära dig hur du använder en hanterad Azure-identitet för att effektivisera App Configuration kan du fortsätta till nästa självstudie: