Megosztás a következőn keresztül:


Oktatóanyag: Dinamikus konfiguráció használata .NET-keretrendszer alkalmazásban

Az alkalmazáskonfigurációból származó adatok betölthetők alkalmazásként Gépház egy .NET-keretrendszer alkalmazásban. További információkért tekintse meg a rövid útmutatót. Az .NET-keretrendszer által tervezett módon azonban az alkalmazás Gépház csak az alkalmazás újraindítása után frissíthet. Az alkalmazáskonfiguráció .NET-szolgáltatója egy .NET Standard kódtár. Támogatja a konfiguráció dinamikus gyorsítótárazását és frissítését az alkalmazás újraindítása nélkül. Ez az oktatóanyag bemutatja, hogyan implementálhat dinamikus konfigurációs frissítéseket egy .NET-keretrendszer konzolalkalmazásban.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Állítsa be a .NET-keretrendszer alkalmazást úgy, hogy az alkalmazáskonfigurációs áruház változásaira reagálva frissítse a konfigurációját.
  • Adja meg az alkalmazás legújabb konfigurációját.

Előfeltételek

Kulcs-érték hozzáadása

Adja hozzá a következő kulcsértéket az Alkalmazáskonfigurációs áruházhoz, és hagyja meg a címke és a tartalomtípus alapértelmezett értékeit. Ha többet szeretne tudni arról, hogyan adhat hozzá kulcsértékeket egy áruházhoz az Azure Portal vagy a parancssori felület használatával, lépjen a Kulcs-érték létrehozása elemre.

Kulcs Érték
TestApp:Gépház:Message Adatok Azure-alkalmazás konfigurációjából

.NET-keretrendszer konzolalkalmazás létrehozása

  1. Indítsa el a Visual Studiót, és válassza az Új projekt létrehozása lehetőséget.

  2. Új projekt létrehozása esetén szűrjön a konzolprojekt típusára, és válassza a Konzolalkalmazás (.NET-keretrendszer) lehetőséget a C#-tal a projektsablonok listájából. Nyomja le a Tovább gombot.

  3. Az új projekt konfigurálásához adjon meg egy projektnevet. A Keretrendszer területen válassza a .NET-keretrendszer 4.7.2 vagy újabb verziót. Kattintson a Létrehozás gombra.

Adatok újrabetöltése az alkalmazáskonfigurációból

  1. Kattintson a jobb gombbal a projektre, és válassza a NuGet-csomagok kezelése lehetőséget. A Tallózás lapon keresse meg és adja hozzá az alábbi NuGet-csomag legújabb verzióját a projekthez.

    Microsoft.Extensions.Configuration.AzureAppConfiguration

  2. Nyissa meg Program.cs , és adja hozzá a következő névtereket.

    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.AzureAppConfiguration;
    
  3. Adjon hozzá két változót a konfigurációval kapcsolatos objektumok tárolásához.

    private static IConfiguration _configuration;
    private static IConfigurationRefresher _refresher;
    
  4. Frissítse a metódust az Main alkalmazáskonfigurációhoz való csatlakozáshoz a megadott frissítési beállításokkal.

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

    A metódusban az ConfigureRefresh Alkalmazáskonfigurációs áruházban lévő kulcs regisztrálva van a változásfigyeléshez. A Register metódus rendelkezik egy választható logikai paramétersel refreshAll , amellyel jelezhető, hogy az összes konfigurációs értéket frissíteni kell-e, ha a regisztrált kulcs megváltozik. Ebben a példában csak a TestApp:Gépház:Message kulcs lesz frissítve. A SetCacheExpiration metódus megadja azt a minimális időt, amelyet az alkalmazáskonfigurációra irányuló új kérés előtt el kell végezni az esetleges konfigurációmódosítások ellenőrzéséhez. Ebben a példában felülbírálja az alapértelmezett 30 másodperces lejárati időt, és ehelyett 10 másodperces időt ad meg bemutató célokra.

  5. Adjon hozzá egy metódust PrintMessage() , amely elindítja a konfigurációs adatok frissítését az Alkalmazáskonfigurációból.

    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!");
    }
    

    Ha egyedül hívja meg a ConfigureRefresh metódust, az nem fogja automatikusan frissíteni a konfigurációt. A felületről meghívja a TryRefreshAsyncIConfigurationRefresher metódust a frissítés indításához. Ennek a tervnek az a célja, hogy elkerülje az alkalmazáskonfigurációnak küldött kéréseket, még akkor is, ha az alkalmazás tétlen. Felveheti azt a TryRefreshAsync hívást, amelyben aktívnak tekinti az alkalmazást. Ez lehet például egy bejövő üzenet, egy rendelés vagy egy összetett feladat iterációja. Időzítőben is lehet, ha az alkalmazás folyamatosan aktív. Ebben a példában az Enter billentyűt lenyomva hívhatja TryRefreshAsync meg. Vegye figyelembe, hogy még ha a hívás TryRefreshAsync bármilyen okból meghiúsul is, az alkalmazás továbbra is a gyorsítótárazott konfigurációt fogja használni. Egy másik kísérlet akkor történik, ha a gyorsítótár konfigurált lejárati ideje lejárt, és a TryRefreshAsync hívást ismét az alkalmazástevékenység aktiválja. A hívás TryRefreshAsync nem működik a konfigurált gyorsítótár lejárati ideje előtt, így a teljesítményre gyakorolt hatása minimális, még akkor is, ha gyakran hívják.

Az alkalmazás helyi létrehozása és futtatása

  1. Állítson be egy Csatlakozás ionString nevű környezeti változót az Alkalmazáskonfigurációs áruház létrehozása során beszerzett írásvédett kulcsra kapcsolati sztring.

    Ha a Windows parancssorát használja, futtassa a következő parancsot:

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

    Windows PowerShell használata esetén futtassa a következő parancsot:

    $Env:ConnectionString = "connection-string-of-your-app-configuration-store"
    
  2. Indítsa újra a Visual Studiót a módosítás érvénybe lépésének engedélyezéséhez.

  3. A konzolalkalmazás létrehozásához és futtatásához nyomja le a Ctrl + F5 billentyűkombinációt.

    App launch local

  4. Az Azure Portalon lépjen az Alkalmazáskonfigurációs áruház Konfigurációkezelőjéhez , és frissítse az alábbi kulcs értékét.

    Kulcs Érték
    TestApp:Gépház:Message Adatok Azure-alkalmazás konfigurációból – Frissítve
  5. A futó alkalmazásban nyomja le az Enter billentyűt a frissítés elindításához, és nyomtassa ki a frissített értéket a parancssorban vagy a PowerShell-ablakban.

    App refresh local

    Feljegyzés

    Mivel a gyorsítótár lejárati ideje a metódus használatával 10 másodpercre lett beállítva a SetCacheExpiration frissítési művelet konfigurációjának megadásakor, a konfigurációs beállítás értéke csak akkor frissül, ha a beállítás legutóbbi frissítése óta legalább 10 másodperc telt el.

Az erőforrások eltávolítása

Ha nem szeretné folytatni a cikkben létrehozott erőforrások használatát, törölje az itt létrehozott erőforráscsoportot a díjak elkerülése érdekében.

Fontos

Az erőforráscsoport törlése nem vonható vissza. Az erőforráscsoport és a benne lévő összes erőforrás véglegesen törlődik. Győződjön meg arról, hogy nem véletlenül törli a rossz erőforráscsoportot vagy erőforrásokat. Ha a cikk erőforrásait olyan erőforráscsoporton belül hozta létre, amely más megtartani kívánt erőforrásokat tartalmaz, törölje az egyes erőforrásokat a megfelelő panelről az erőforráscsoport törlése helyett.

  1. Jelentkezzen be az Azure Portalra, és válassza ki az Erőforráscsoportokat.
  2. A Szűrés név szerint mezőbe írja be az erőforráscsoport nevét.
  3. Az eredménylistában válassza ki az erőforráscsoport nevét az áttekintés megtekintéséhez.
  4. Válassza az Erőforráscsoport törlése elemet.
  5. A rendszer az erőforráscsoport törlésének megerősítését kéri. Adja meg a megerősítéshez az erőforráscsoport nevét, és válassza a Törlés lehetőséget.

Néhány pillanat múlva az erőforráscsoport és annak összes erőforrása törlődik.

Következő lépések

Ebben az oktatóanyagban engedélyezte a .NET-keretrendszer-alkalmazást, hogy dinamikusan frissítse a konfigurációs beállításokat az Alkalmazáskonfigurációból. Ha szeretné megtudni, hogyan engedélyezheti a dinamikus konfigurációt egy ASP.NET-webalkalmazásban (.NET-keretrendszer), folytassa a következő oktatóanyagban:

Ha szeretné megtudni, hogyan használhat azure-beli felügyelt identitást az alkalmazáskonfigurációhoz való hozzáférés egyszerűsítéséhez, folytassa a következő oktatóanyagban: