Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Daten aus App Configuration können als App-Einstellungen in eine .NET Framework-App geladen werden. Weitere Informationen finden Sie im Schnellstart. Wie im .NET Framework vorgesehen, können die App-Einstellungen jedoch nur beim Neustart der App aktualisiert werden. Der .NET-Anbieter von App Configuration ist eine .NET Standard-Bibliothek. Sie unterstützt das dynamische Zwischenspeichern und Aktualisieren der Konfiguration ohne App-Neustart. In diesem Tutorial wird veranschaulicht, wie Sie dynamische Konfigurationsupdates in einer .NET Framework-Konsolen-App implementieren können.
In diesem Tutorial lernen Sie, wie die folgenden Aufgaben ausgeführt werden:
- Richten Sie Ihre .NET Framework-App für die Aktualisierung der Konfiguration als Reaktion auf Änderungen in einem App Configuration-Speicher ein.
- Einfügen der aktuellen Konfiguration in Ihre Anwendung
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Erstellen Sie ein kostenloses Konto.
- Ein App-Konfigurationsspeicher. Erstellen Sie einen Speicher.
- Visual Studio
- .NET Framework 4.7.2 oder höher
Einen Schlüsselwert hinzufügen
Fügen Sie dem App Configuration-Speicher den folgenden Schlüsselwert hinzu, und übernehmen Sie für Bezeichnung und Inhaltstyp die Standardwerte. Weitere Informationen zum Hinzufügen von Schlüssel-Werten zu einem Speicher mithilfe des Azure-Portals oder der CLI finden Sie unter Erstellen eines Schlüssel-Werts.
Schlüssel | Wert |
---|---|
TestApp:Settings:Message | Daten aus Azure App Configuration |
Erstellen einer .NET Framework-Konsolen-App
Starten Sie Visual Studio, und wählen Sie Neues Projekt erstellen aus.
Filtern Sie unter Neues Projekt erstellen nach dem Projekttyp Konsole, und klicken Sie in der Projektvorlagenliste auf Konsolen-App (.NET Framework) mit C#. Klicken Sie auf Weiter.
Geben Sie unter Neues Projekt konfigurieren einen Projektnamen ein. Wählen Sie unter Framework die Option .NET Framework 4.7.2 oder höher aus. Klicken Sie auf Erstellen.
Erneutes Laden von Daten aus App Configuration
Klicken Sie mit der rechten Maustaste auf Ihr Projekt, und wählen Sie NuGet-Pakete verwalten aus. Suchen Sie auf der Registerkarte Durchsuchen die neueste Version des folgenden NuGet-Pakets, und fügen Sie sie Ihrem Projekt hinzu.
- Microsoft.Extensions.Configuration.AzureAppConfiguration
- Azure.Identity
Öffnen Sie Program.cs, und fügen Sie die folgenden Namespaces hinzu.
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.AzureAppConfiguration; using Azure.Identity;
Fügen Sie zwei Variablen zum Speichern konfigurationsbezogener Objekte hinzu.
private static IConfiguration _configuration; private static IConfigurationRefresher _refresher;
Aktualisieren Sie mit den angegebenen Aktualisierungsoptionen die Methode
Main
, um eine Verbindung mit App Configuration herzustellen. Stellen Sie eine Verbindung mit App Configuration mithilfe von Microsoft Entra ID (empfohlen) oder einer Verbindungszeichenfolge her.Sie verwenden die
DefaultAzureCredential
für die Authentifizierung beim App Configuration-Speicher. Folgen Sie den Anweisungen , um Ihre Anmeldeinformationen der Rolle "App-Konfigurationsdatenleser" zuzuweisen. Achten Sie darauf, ausreichend Zeit für die Verteilung der Berechtigung einzuplanen, bevor Sie Ihre Anwendung ausführen.// Existing code in Program.cs // ... ... static void Main(string[] args) { var 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(TimeSpan.FromSeconds(10)); }); _refresher = options.GetRefresher(); }); _configuration = builder.Build(); PrintMessage().Wait(); } // The rest of existing code in Program.cs // ... ...
Innerhalb der
ConfigureRefresh
Methode rufen Sie dieRegisterAll
Methode auf, den App-Konfigurationsanbieter anzuweisen, die gesamte Konfiguration neu zu laden, wenn eine Änderung in einem der ausgewählten Schlüsselwerte erkannt wird (die mit TestApp beginnen und keine Bezeichnung haben). Weitere Informationen zum Überwachen von Konfigurationsänderungen finden Sie unter Bewährte Methoden für die Aktualisierung der Konfiguration.Durch die Methode
SetRefreshInterval
wird angegeben, wie viel Zeit mindestens verstreichen muss, bevor eine neue Anforderung an App Configuration gesendet wird, um nach Konfigurationsänderungen zu suchen. In diesem Beispiel wird die Standardablaufzeit von 30 Sekunden außer Kraft gesetzt, indem stattdessen zu Demonstrationszwecken eine Zeit von 10 Sekunden festgelegt wird.Fügen Sie eine Methode namens
PrintMessage()
hinzu, die eine Aktualisierung der Konfigurationsdaten aus App Configuration auslöst.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!"); }
Das Aufrufen der Methode
ConfigureRefresh
allein führt nicht dazu, dass die Konfiguration automatisch aktualisiert wird. Sie rufen die MethodeTryRefreshAsync
über die SchnittstelleIConfigurationRefresher
auf, um eine Aktualisierung auszulösen. Dieses Design soll verhindern, dass Anfragen an die App Configuration gesendet werden, selbst wenn Ihre Anwendung im Leerlauf ist. Sie können den AufrufTryRefreshAsync
dort verwenden, wo Sie Ihre Anwendung als aktiv betrachten. Dies kann beispielsweise der Fall sein, wenn Sie eine eingehende Nachricht, eine Bestellung oder eine Iteration einer komplexen Aufgabe verarbeiten. Er kann auch Teil eines Timers sein, wenn Ihre Anwendung ständig aktiv ist. In diesem Beispiel rufen SieTryRefreshAsync
auf, wenn Sie die EINGABETASTE drücken. Beachten Sie, dass Ihre Anwendung auch dann weiterhin die zwischengespeicherte Konfiguration verwendet, wenn beim AufrufTryRefreshAsync
aus irgendeinem Grund ein Fehler auftritt. Ein weiterer Versuch wird unternommen, wenn das konfigurierte Aktualisierungsintervall verstrichen ist und derTryRefreshAsync
Aufruf erneut von Ihrer Anwendungsaktivität ausgelöst wird. Das Aufrufen vonTryRefreshAsync
ist vor Verstreichen des konfigurierten Aktualisierungsintervalls keine Option. Daher sind die Auswirkungen auf die Leistung minimal, auch wenn der Aufruf häufig erfolgt.
Lokales Erstellen und Ausführen der App
Legen Sie eine Umgebungsvariable fest.
Setzen Sie eine Umgebungsvariable
Endpoint
auf den Endpunkt Ihres App-Konfigurationsspeichers, den Sie unter der Übersicht Ihres Stores im Azure-Portal finden.Führen Sie bei Verwendung einer Windows-Eingabeaufforderung den folgenden Befehl aus, und starten Sie die Eingabeaufforderung neu, damit die Änderung wirksam wird:
setx Endpoint "<endpoint-of-your-app-configuration-store>"
Wenn Sie PowerShell verwenden, führen Sie den folgenden Befehl aus:
$Env:Endpoint = "<endpoint-of-your-app-configuration-store>"
Führen Sie bei Verwendung von macOS oder Linux den folgenden Befehl aus:
export Endpoint='<endpoint-of-your-app-configuration-store>'
Starten Sie Visual Studio, damit die Änderung wirksam wird.
Drücken Sie STRG+F5, um die Konsolen-App zu erstellen und auszuführen.
Navigieren Sie im Azure-Portal zum Konfigurations-Explorer Ihres App Configuration-Speichers, und aktualisieren Sie den Wert des folgenden Schlüssels.
Schlüssel Wert TestApp:Settings:Message Daten aus Azure App Configuration: Aktualisiert Zurück in der laufenden Anwendung drücken Sie die EINGABETASTE, um eine Aktualisierung auszulösen und den aktualisierten Wert in der Eingabeaufforderung oder im PowerShell-Fenster anzuzeigen.
Hinweis
Da das Aktualisierungsintervall mithilfe der
SetRefreshInterval
Methode auf 10 Sekunden festgelegt wurde, während die Konfiguration für den Aktualisierungsvorgang angegeben wurde, wird der Wert für die Konfigurationseinstellung nur aktualisiert, wenn mindestens 10 Sekunden seit der letzten Aktualisierung für diese Einstellung verstrichen sind.
Bereinigen von Ressourcen
Wenn Sie die in diesem Artikel erstellten Ressourcen nicht mehr verwenden möchten, löschen Sie die erstellte Ressourcengruppe, um Kosten zu vermeiden.
Wichtig
Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Die Ressourcengruppe und alle darin enthaltenen Ressourcen werden unwiderruflich gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen. Falls Sie die Ressourcen für diesen Artikel in einer Ressourcengruppe erstellt haben, die andere beizubehaltende Ressourcen enthält, löschen Sie die Ressourcen einzeln über den entsprechenden Bereich, statt die Ressourcengruppe zu löschen.
- Melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen.
- Geben Sie im Feld Nach Name filtern den Namen Ihrer Ressourcengruppe ein.
- Wählen Sie in der Ergebnisliste den Ressourcengruppennamen aus, um eine Übersicht anzuzeigen.
- Wählen Sie die Option Ressourcengruppe löschen.
- Sie werden aufgefordert, das Löschen der Ressourcengruppe zu bestätigen. Geben Sie zur Bestätigung den Namen Ihrer Ressourcengruppe ein, und klicken Sie auf Löschen.
Daraufhin werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.
Nächste Schritte
In diesem Tutorial haben Sie Ihre .NET Framework-App aktiviert, um Konfigurationseinstellungen dynamisch aus App Configuration zu aktualisieren. Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie die dynamische Konfiguration in einer ASP.NET-Webanwendung (.NET Framework) aktivieren:
Im nächsten Tutorial erfahren Sie, wie Sie eine von Azure verwaltete Identität hinzufügen, um den Zugriff auf App Configuration zu optimieren: