Sdílet prostřednictvím


Kurz: Použití dynamické konfigurace ve webové aplikaci ASP.NET (.NET Framework)

Data ze služby App Configuration je možné načíst jako nastavení aplikace v aplikaci .NET Framework. Další informace najdete v rychlém startu. Jak je však navrženo rozhraním .NET Framework, nastavení aplikace se může aktualizovat pouze po restartování aplikace. Zprostředkovatel .NET Konfigurace aplikace je knihovna .NET Standard. Podporuje dynamicky ukládání do mezipaměti a aktualizaci konfigurace bez restartování aplikace. V tomto kurzu se dozvíte, jak implementovat dynamické aktualizace konfigurace v aplikaci ASP.NET Web Forms. Stejná technika platí pro aplikace MVC rozhraní .NET Framework.

V tomto návodu se naučíte, jak:

  • Nastavte webovou aplikaci ASP.NET tak, aby aktualizovala konfiguraci v reakci na změny v App Configuration Storu.
  • Vložení nejnovější konfigurace do žádostí do vaší aplikace

Požadavky

Přidejte klíčové hodnoty

Přidejte do obchodu App Configuration následující klíčové hodnoty a ponechte Label a Content Type s jejich výchozími hodnotami. Další informace o tom, jak přidat hodnoty klíčů do úložiště pomocí webu Azure Portal nebo rozhraní příkazového řádku, najdete v tématu Vytvoření hodnoty klíče.

Klíč Hodnota
TestApp:Nastavení:BackgroundColor bílá
TestApp:Nastavení:Barva písma černá
TestApp: Nastavení: Velikost písma 40
TestApp:Settings:Message Data z konfigurace Aplikace Azure

Vytvoření webové aplikace ASP.NET

  1. Spusťte Visual Studio a vyberte Vytvořit nový projekt.

  2. V seznamu šablon projektu vyberte ASP.NET webovou aplikaci (.NET Framework) s jazykem C# a stiskněte klávesu Další.

  3. Do pole Konfigurovat nový projekt zadejte název projektu. V části Framework vyberte rozhraní .NET Framework 4.7.2 nebo vyšší. Stiskněte tlačítko Vytvořit.

  4. V části Vytvořit novou ASP.NET webovou aplikaci vyberte Webové formuláře. Stiskněte tlačítko Vytvořit.

Opětovné načtení dat z konfigurace aplikace

  1. Klikněte pravým tlačítkem na projekt a vyberte Spravovat balíčky NuGet. Na kartě Procházet vyhledejte a přidejte do projektu nejnovější verzi následujících balíčků NuGet.

    • Microsoft.Extensions.Configuration.AzureAppConfiguration
    • Azure.Identity
  2. Otevřete soubor Global.asax.cs a přidejte následující obory názvů.

    using Azure.Identity;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.AzureAppConfiguration;
    
  3. Do třídy přidejte následující statické členské proměnné Global .

    public static IConfiguration Configuration;
    private static IConfigurationRefresher _configurationRefresher;
    
  4. Přidejte do Application_Start třídy metodu Global . Pokud metoda již existuje, přidejte do ní následující kód.

    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_Start se volá při prvním požadavku na vaši webovou aplikaci. Volá se pouze jednou během životního cyklu aplikace. Právě z tohoto důvodu je vhodné inicializovat IConfiguration objekt a načíst data z App Configuration.

    ConfigureRefresh Uvnitř metody zavoláte metoduRegisterAll, která zprostředkovateli konfigurace aplikace dá pokyn, aby znovu načítal celou konfiguraci, kdykoli zjistí změnu v některé z vybraných hodnot klíče (ty, které začínají testAppem: a nemají žádný popisek). Pro více informací o sledování změn konfigurace viz Nejlepší praxe pro aktualizaci konfigurace.

    Metoda SetRefreshInterval určuje minimální čas, který musí uplynout před provedením nového požadavku do služby App Configuration, aby se zkontrolovaly všechny změny konfigurace. V tomto příkladu přepíšete výchozí dobu vypršení platnosti 30 sekund a místo toho zadáte čas 5 minut. Snižuje potenciální počet podaných požadavků v úložišti App Configuration.

  5. Přidejte do Application_BeginRequest třídy metodu Global . Pokud metoda již existuje, přidejte do ní následující kód.

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        _ = _configurationRefresher.TryRefreshAsync();
    }
    

    ConfigureRefresh Volání samotné metody nezpůsobí automatickou aktualizaci konfigurace. Zavoláte metodu TryRefreshAsync na začátku každého požadavku, který signalizuje aktualizaci. Tento návrh zajistí, že vaše aplikace odesílá požadavky do konfigurace aplikace jenom v případě, že aktivně přijímá požadavky.

    Volání TryRefreshAsync se provádí jako no-op před vypršením nakonfigurovaného časového intervalu aktualizace, takže jeho dopad na výkon je minimální. Když se do konfigurace aplikace vytvoří požadavek, protože nečekáte na úlohu, konfigurace se aktualizuje asynchronně bez blokování spuštění aktuálního požadavku. Aktuální požadavek nemusí získat aktualizované hodnoty konfigurace, ale následné požadavky je získají.

    Pokud volání TryRefreshAsync z nějakého důvodu selže, vaše aplikace bude dál používat konfiguraci uloženou v mezipaměti. Další pokus se provede, když opět uplyne nakonfigurovaný interval aktualizace a TryRefreshAsync volání se aktivuje novým požadavkem na vaši aplikaci.

Použití nejnovějších konfiguračních dat

  1. Otevřete Default.aspx a nahraďte jeho obsah následujícím kódem. Ujistěte se, že atribut Inherits odpovídá oboru názvů a názvu třídy vaší aplikace.

    <%@ 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>
    
  2. Otevřete Default.aspx.cs a aktualizujte ho následujícím kódem.

    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;
            }
        }
    }
    

Sestavení a spuštění aplikace

  1. Nastavte proměnnou prostředí.

    Nastavte proměnnou prostředí s názvem Endpoint na koncový bod vašeho úložiště App Configuration, který najdete v části Přehled vašeho úložiště v Azure portálu.

    Pokud používáte příkazový řádek systému Windows, spusťte následující příkaz a restartujte příkazový řádek, aby se změna projevila:

    setx Endpoint "<endpoint-of-your-app-configuration-store>"
    

    Pokud používáte PowerShell, spusťte následující příkaz:

    $Env:Endpoint = "<endpoint-of-your-app-configuration-store>"
    

    Pokud používáte macOS nebo Linux, spusťte následující příkaz:

    export Endpoint='<endpoint-of-your-app-configuration-store>'
    
  2. Restartujte Visual Studio, aby se změna projevila.

  3. Stisknutím kombinace kláves Ctrl + F5 sestavte a spusťte webovou aplikaci.

    Místní spuštění aplikace

  4. Na webu Azure Portal přejděte do Průzkumníka konfigurace úložiště app Configuration Store a aktualizujte hodnotu následujících klíčů.

    Klíč Hodnota
    TestApp:Nastavení:BackgroundColor zelená
    TestApp:Nastavení:Barva písma Světle šedá
    TestApp:Settings:Message Data z Azure App Configuration – nyní s živými aktualizacemi!
  5. Aktualizujte stránku prohlížeče, aby se zobrazila nová nastavení konfigurace. Možná budete muset aktualizovat více než jednou, aby se změny projevily, nebo změnit interval aktualizace na méně než 5 minut.

    Místní aktualizace aplikace

Poznámka:

Ukázkový kód použitý v tomto kurzu si můžete stáhnout z úložiště Azure App Configuration Na GitHubu.

Upravte zdroje

Pokud nechcete dál používat prostředky vytvořené v tomto článku, odstraňte skupinu prostředků, kterou jste tady vytvořili, abyste se vyhnuli poplatkům.

Důležité

Odstranění skupiny prostředků je nevratné. Skupina prostředků a všechny prostředky v ní se trvale odstraní. Dávejte pozor, abyste omylem neodstranili nesprávnou skupinu prostředků nebo jednotlivé prostředky. Pokud jste vytvořili prostředky pro tento článek ve skupině prostředků, která obsahuje další prostředky, které chcete zachovat, odstraňte jednotlivé prostředky z příslušného podokna místo odstranění skupiny prostředků.

  1. Přihlaste se k webu Azure Portal a vyberte skupiny prostředků.
  2. Do pole Filtrovat podle názvu zadejte název vaší skupiny prostředků.
  3. V seznamu výsledků vyberte název skupiny prostředků, abyste zobrazili přehled.
  4. Vyberte odstranit skupinu zdrojů.
  5. Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Potvrďte název skupiny prostředků a vyberte Odstranit.

Po několika okamžicích se skupina prostředků a všechny její prostředky vymažou.

Další kroky

V tomto kurzu jste povolili aplikaci ASP.NET Web Forms tak, aby dynamicky aktualizovala nastavení konfigurace ze služby App Configuration. Pokud chcete zjistit, jak povolit dynamickou konfiguraci v aplikaci .NET Framework, pokračujte dalším kurzem:

Pokud chcete zjistit, jak pomocí spravované identity Azure zjednodušit přístup ke službě App Configuration, pokračujte dalším kurzem: