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

Data z App Configuration lze načíst jako app Nastavení v .NET Framework aplikaci. Další informace najdete v rychlém startu. Jak je ale navrženo aplikací .NET Framework, aplikace app Nastavení aktualizovat pouze při restartování aplikace. Poskytovatel App Configuration .NET je .NET Standard knihovna. Podporuje dynamické ukládání do mezipaměti a aktualizaci konfigurace bez restartování aplikace. Tento kurz ukazuje, jak můžete implementovat dynamické aktualizace konfigurace v ASP.NET Web Forms aplikaci. Stejný postup platí i pro .NET Framework MVC.

V tomto kurzu se naučíte:

  • Nastavte svou ASP.NET aplikaci tak, aby v reakci na změny v App Configuration aplikaci.
  • Do aplikace vložit nejnovější konfiguraci do požadavků.

Požadavky

Vytvoření App Configuration úložiště

  1. Pokud chcete vytvořit nové úložiště konfigurace aplikace, přihlaste se k Azure Portal. V levém horním rohu domovské stránky vyberte vytvořit prostředek. Do pole Hledat na Marketplace zadejte Konfigurace aplikace a vyberte ENTER.

    Vyhledat konfiguraci aplikace

  2. Ve výsledcích hledání vyberte Konfigurace aplikace a pak vyberte vytvořit.

    Výběr možnosti Vytvořit

  3. V podokně vytvořit konfiguraci aplikace zadejte následující nastavení:

    Nastavení Navrhovaná hodnota Popis
    Předplatné Vaše předplatné Vyberte předplatné Azure, které chcete použít k testování konfigurace aplikace. Pokud má váš účet jenom jedno předplatné, vybere se automaticky a seznam předplatných se nezobrazí.
    Skupina prostředků AppConfigTestResources Vyberte nebo vytvořte skupinu prostředků pro prostředek úložiště konfigurace aplikace. Tato skupina je užitečná k organizování více prostředků, které můžete chtít odstranit současně odstraněním skupiny prostředků. Další informace najdete v tématu použití skupin prostředků ke správě prostředků Azure.
    Název prostředku Globálně jedinečný název Zadejte jedinečný název prostředku, který se má použít pro prostředek úložiště konfigurace aplikace. Název musí být řetězec o 5 až 50 znaků a obsahovat pouze čísla, písmena a - znak. Název nesmí začínat ani končit - znakem.
    Umístění USA – střed Umístění použijte k určení geografického umístění, ve kterém je úložiště konfigurace aplikace hostované. Nejlepšího výkonu dosáhnete vytvořením prostředku ve stejné oblasti jako jiné součásti aplikace.
    Cenová úroveň Free Vyberte požadovanou cenovou úroveň. Další informace najdete na stránce s cenami konfigurace aplikací.
  4. Vyberte zkontrolovat + vytvořit a ověřte nastavení.

  5. Vyberte Vytvořit. Nasazení může trvat několik minut.

  6. Po dokončení nasazení přejděte do prostředku konfigurace aplikace. Vyberte Nastavení > Přístupové klíče. Poznamenejte si primární připojovací řetězec klíče jen pro čtení. Pomocí tohoto připojovacího řetězce později nakonfigurujete aplikaci tak, aby komunikovala s úložištěm konfigurace aplikace, které jste vytvořili.

  1. Výběrem možnosti Operations Configuration Explorer Create Key-value (Vytvořit > > > klíč-hodnotu) přidejte následující hodnoty klíče:

    Klíč Hodnota
    TestApp:Nastavení:BackgroundColor White
    TestApp:Nastavení:FontColor Black
    TestApp:Nastavení:FontSize 40
    TestApp:Nastavení:Message Data z Azure App Configuration
    TestApp:Nastavení:Sentinel v1

    Pole Popisek a Typ obsahu ponechte prázdné.

Vytvoření webové ASP.NET aplikace

  1. Spusťte Visual Studio a vyberte Create a new project (Vytvořit nový projekt).

  2. V ASP.NET šablony projektu vyberte .NET Framework Aplikace (.NET Framework) s jazykem C# a stiskněte Další.

  3. V části Configure your new project(Konfigurace nového projektu) zadejte název projektu. V části Framework (.NET Framework) vyberte 4.7.2 nebo novější. Stiskněte Vytvořit.

  4. V části Vytvořit novou ASP.NET webové aplikace vyberte Web Forms. Stiskněte Vytvořit.

Opětovné načtení dat z App Configuration

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

    Microsoft.Extensions.Configuration.AzureAppConfiguration

  2. Otevřete soubor Global.asax.cs a přidejte následující obory názvů.

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

    public static IConfiguration Configuration;
    private static IConfigurationRefresher _configurationRefresher;
    
  4. Přidejte Application_Start do třídy Global metodu . 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 =>
        {
            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();
    }
    

    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. Proto je vhodné místo pro inicializaci objektu a načtení dat z IConfiguration App Configuration.

    V ConfigureRefresh metodě je v rámci vašeho úložiště App Configuration zaregistrovaný klíč pro monitorování změn. Parametr refreshAll metody indikuje, že pokud se zaregistrovaný klíč změní, všechny konfigurační hodnoty se Register mají aktualizovat. V tomto příkladu je klíč TestApp:Nastavení:Sentinel sentinel klíč, který aktualizujete po dokončení změny všech ostatních klíčů. Při zjištění změny aplikace aktualizuje všechny hodnoty konfigurace. Tento přístup pomáhá zajistit konzistenci konfigurace ve vaší aplikaci v porovnání s monitorováním všech klíčů pro změny.

    Metoda určuje minimální dobu, která musí uplynout před provedením nového požadavku na App Configuration kontrolu všech SetCacheExpiration změn konfigurace. V tomto příkladu přepíšete výchozí dobu vypršení platnosti 30 sekund a místo toho zadáte dobu 5 minut. Snižuje potenciální počet požadavků na vaše úložiště App Configuration úložiště.

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

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

    Samotné ConfigureRefresh volání metody nezpůsobí automatickou aktualizaci konfigurace. Na začátku každého požadavku zavoláte metodu TryRefreshAsync , která signalizována aktualizaci. Tento návrh zajišťuje, že vaše aplikace odesílá požadavky pouze App Configuration, když aktivně přijímá žádosti.

    Volání je operace no-op před uplynutím nakonfigurovaného času vypršení platnosti TryRefreshAsync mezipaměti, takže jeho dopad na výkon je minimální. Když je proveden požadavek na App Configuration, protože nečekáte na úlohu, konfigurace se aktualizuje asynchronně bez blokování provádění aktuálního požadavku. Aktuální požadavek nemusí získat aktualizované hodnoty konfigurace, ale další požadavky to budou dělat.

    Pokud se volání TryRefreshAsync z nějakého důvodu nezdaří, vaše aplikace bude dál používat konfiguraci v mezipaměti. Při uplynutí nakonfigurované doby vypršení platnosti mezipaměti znovu dojde k dalšímu pokusu a volání se aktivuje novou TryRefreshAsync žádostí do vaší aplikace.

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 soubor 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í s názvem ConnectionString na připojovací řetězec klíče jen pro čtení získaný App Configuration vytvoření úložiště.

    Pokud použijete Windows příkazového řádku, spusťte následující příkaz:

    setx ConnectionString "connection-string-of-your-app-configuration-store"
    

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

    $Env:ConnectionString = "connection-string-of-your-app-configuration-store"
    
  2. Restartováním Visual Studio povolte, aby se změna projeví.

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

    Místní spuštění aplikace

  4. V Azure Portal přejděte do Průzkumníka konfigurace vašeho App Configuration úložiště a aktualizujte hodnotu následujících klíčů. Nezapomeňte nakonec aktualizovat klíč sentinelu TestApp:Nastavení:Sentinel.

    Klíč Hodnota
    TestApp:Nastavení:BackgroundColor Green
    TestApp:Nastavení:FontColor LightGray
    TestApp:Nastavení:Message Data z Azure App Configuration – nyní s živými aktualizacemi!
    TestApp:Nastavení:Sentinel v2
  5. Aktualizujte stránku prohlížeče a zobrazte nová nastavení konfigurace. Možná budete muset provést aktualizaci více než jednou, aby se změny projevily, nebo změnit dobu vypršení platnosti mezipaměti na méně než 5 minut.

    Místní aktualizace aplikace

Poznámka

Příklad kódu použitého v tomto kurzu si můžete stáhnout z Azure App Configuration GitHub .

Vyčištění prostředků

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 předešli 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í. Ujistěte se, že nechtěně neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste vytvořili prostředky pro tento článek v rámci skupiny prostředků, která obsahuje další prostředky, které chcete zachovat, odstraňte všechny prostředky jednotlivě z příslušného podokna, místo aby se odstranila skupina prostředků.

  1. Přihlaste se k Azure Portala 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ů, aby se zobrazil přehled.
  4. Vyberte Odstranit skupinu prostředků.
  5. Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Zadejte název vaší skupiny prostředků, který chcete potvrdit, a vyberte Odstranit.

Po chvíli se odstraní skupina prostředků a všechny její prostředky.

Další kroky

V tomto kurzu jste své aplikaci ASP.NET Web Forms dynamicky aktualizovat nastavení konfigurace z App Configuration. Informace o povolení dynamické konfigurace v aplikaci .NET Framework najdete v dalším kurzu:

Informace o použití spravované identity Azure ke zjednodušení přístupu k App Configuration najdete v dalším kurzu: