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
- Egy Azure-fiók, aktív előfizetéssel. Hozzon létre egyet ingyen.
- Alkalmazáskonfigurációs áruház. Hozzon létre egy áruházat.
- Visual Studio
- .NET-keretrendszer 4.7.2 vagy újabb verzió
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
Indítsa el a Visual Studiót, és válassza az Új projekt létrehozása lehetőséget.
Ú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.
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
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
Nyissa meg Program.cs , és adja hozzá a következő névtereket.
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.AzureAppConfiguration;
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;
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. ARegister
metódus rendelkezik egy választható logikai paraméterselrefreshAll
, 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. ASetCacheExpiration
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.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 aTryRefreshAsync
IConfigurationRefresher
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 aTryRefreshAsync
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ívhatjaTryRefreshAsync
meg. Vegye figyelembe, hogy még ha a hívásTryRefreshAsync
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 aTryRefreshAsync
hívást ismét az alkalmazástevékenység aktiválja. A hívásTryRefreshAsync
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
Á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"
Indítsa újra a Visual Studiót a módosítás érvénybe lépésének engedélyezéséhez.
A konzolalkalmazás létrehozásához és futtatásához nyomja le a Ctrl + F5 billentyűkombinációt.
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 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.
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.
- Jelentkezzen be az Azure Portalra, és válassza ki az Erőforráscsoportokat.
- A Szűrés név szerint mezőbe írja be az erőforráscsoport nevét.
- Az eredménylistában válassza ki az erőforráscsoport nevét az áttekintés megtekintéséhez.
- Válassza az Erőforráscsoport törlése elemet.
- 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: