Sdílet prostřednictvím


Kurz: Použití dynamické konfigurace v aplikaci .NET Framework

Data z konfigurace aplikace 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 můžete implementovat dynamické aktualizace konfigurace v konzolové aplikaci rozhraní .NET Framework.

V tomto kurzu se naučíte:

  • Nastavte aplikaci .NET Framework tak, aby aktualizovala konfiguraci v reakci na změny v obchodě App Configuration Store.
  • Vložení nejnovější konfigurace do aplikace

Požadavky

Přidání hodnoty klíče

Přidejte do obchodu App Configuration následující klíč-hodnota a ponechte popisek a typ obsahu s 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.

Key Hodnota
TestApp:Settings:Message Data z konfigurace Aplikace Azure

Vytvoření konzolové aplikace rozhraní .NET Framework

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

  2. V části Vytvořit nový projekt vyfiltrujte typ projektu konzoly a ze seznamu šablon projektu vyberte Konzolová aplikace (.NET Framework) s jazykem C#. Stiskněte 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.

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ího balíčku NuGet.

    Microsoft.Extensions.Configuration.AzureAppConfiguration

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

    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.AzureAppConfiguration;
    
  3. Přidejte dvě proměnné pro ukládání objektů souvisejících s konfigurací.

    private static IConfiguration _configuration;
    private static IConfigurationRefresher _refresher;
    
  4. Aktualizujte metodu Main pro připojení ke službě App Configuration pomocí zadaných možností aktualizace.

    static void Main(string[] args)
    {
        var builder = new ConfigurationBuilder();
        builder.AddAzureAppConfiguration(options =>
        {
            options.Connect(Environment.GetEnvironmentVariable("ConnectionString"))
                    // Load all keys that start with `TestApp:`.
                    .Select("TestApp:*")
                    // Configure to reload the key 'TestApp:Settings:Message' if it is modified.
                    .ConfigureRefresh(refresh =>
                    {
                        refresh.Register("TestApp:Settings:Message")
                               .SetCacheExpiration(TimeSpan.FromSeconds(10));
                    });
    
            _refresher = options.GetRefresher();
        });
    
        _configuration = builder.Build();
        PrintMessage().Wait();
    }
    

    ConfigureRefresh V metodě je pro monitorování změn zaregistrovaný klíč v obchodě App Configuration Store. Metoda Register má volitelný logický parametr refreshAll , který lze použít k označení, zda se mají aktualizovat všechny hodnoty konfigurace, pokud se registrovaný klíč změní. V tomto příkladu se aktualizuje pouze klíč TestApp:Settings:Message . Metoda SetCacheExpiration 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 10 sekund pro demonstrační účely.

  5. Přidejte metodu, PrintMessage() která aktivuje aktualizaci konfiguračních dat z App Configuration.

    private static async Task PrintMessage()
    {
        Console.WriteLine(_configuration["TestApp:Settings:Message"] ?? "Hello world!");
    
        // Wait for the user to press Enter
        Console.ReadLine();
    
        await _refresher.TryRefreshAsync();
        Console.WriteLine(_configuration["TestApp:Settings:Message"] ?? "Hello world!");
    }
    

    ConfigureRefresh Volání samotné metody nezpůsobí automatickou aktualizaci konfigurace. Zavoláte metodu TryRefreshAsync z rozhraní IConfigurationRefresher , která aktivuje aktualizaci. Tento návrh spočívá v tom, že se vyhnete požadavkům odesílaným do služby App Configuration, i když je vaše aplikace nečinná. Můžete zahrnout volání, TryRefreshAsync ve kterém považujete aplikaci za aktivní. Může to být například při zpracování příchozí zprávy, pořadí nebo iterace složité úlohy. Může být také v časovači, pokud je vaše aplikace aktivní po celou dobu. V tomto příkladu zavoláte TryRefreshAsync , když stisknete klávesu Enter. Mějte na paměti, že i když volání TryRefreshAsync z nějakého důvodu selže, bude vaše aplikace i nadále používat konfiguraci uloženou v mezipaměti. Další pokus se provede, když vypršela nakonfigurovaná doba vypršení platnosti mezipaměti a TryRefreshAsync volání se znovu aktivuje aktivitou vaší aplikace. Volání TryRefreshAsync je no-op před uplynutím nakonfigurovaného času vypršení platnosti mezipaměti, takže jeho dopad na výkon je minimální, i když se volá často.

Sestavení a místní spuštění aplikace

  1. Nastavte proměnnou prostředí s názvem ConnectionString na klíč jen pro čtení připojovací řetězec získané při vytváření úložiště app Configuration.

    Pokud používáte příkazový řádek systému Windows, 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. Restartujte Visual Studio, aby se změna projevila.

  3. Stisknutím kombinace kláves Ctrl+ F5 sestavte a spusťte konzolovou 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ího klíče.

    Key Hodnota
    TestApp:Settings:Message Data z konfigurace Aplikace Azure – aktualizována
  5. Zpátky ve spuštěné aplikaci stisknutím klávesy Enter aktivujte aktualizaci a vytiskněte aktualizovanou hodnotu v okně příkazového řádku nebo PowerShellu.

    Místní aktualizace aplikace

    Poznámka:

    Vzhledem k tomu, že doba vypršení platnosti mezipaměti byla nastavena na 10 sekund pomocí SetCacheExpiration metody při zadávání konfigurace operace aktualizace, hodnota pro nastavení konfigurace se aktualizuje pouze v případě, že uplynulo nejméně 10 sekund od poslední aktualizace pro toto nastavení.

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 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í. Ujistěte se, že omylem neodstraníte nesprávnou skupinu prostředků nebo 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 prostředků.
  5. Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Potvrďte název skupiny prostředků a vyberte Odstranit.

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

Další kroky

V tomto kurzu jste povolili aplikaci .NET Framework tak, aby dynamicky aktualizovala nastavení konfigurace z app Configuration. Pokud chcete zjistit, jak povolit dynamickou konfiguraci ve webové aplikaci ASP.NET (.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: