Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les données d’App Configuration peuvent être chargées en tant que paramètres d’application dans une application .NET Framework. Pour plus d’informations, consultez le guide de démarrage rapide. Toutefois, tel qu’il est conçu par le .NET Framework, les paramètres de l’application ne peuvent s’actualiser qu’au redémarrage de l’application. Le fournisseur .NET d’App Configuration est une bibliothèque .NET Standard. Il prend en charge la mise en cache et l’actualisation dynamiques de la configuration sans redémarrage de l’application. Ce tutoriel montre comment implémenter des mises à jour de configuration dynamique dans une application web Forms ASP.NET. La même technique s’applique aux applications .NET Framework MVC.
Dans ce tutoriel, vous allez apprendre à :
- Configurez votre application web ASP.NET pour mettre à jour sa configuration en réponse aux modifications apportées à un magasin App Configuration.
- Injectez la dernière configuration dans les requêtes de votre application.
Conditions préalables
- Un compte Azure avec un abonnement actif. Créez-en un gratuitement.
- Un magasin de configuration d'applications. Créez un magasin.
- Visual Studio
- .NET Framework 4.7.2 ou version ultérieure
Ajouter des clés-valeurs
Ajoutez les clés-valeurs suivantes au magasin App Configuration et conservez les valeurs par défaut des options Étiquette et Type de contenu. Pour plus d’informations sur l’ajout de clés-valeurs à un magasin avec le Portail Azure ou la CLI, consultez Créer une clé-valeur.
Clé | Valeur |
---|---|
TestApp :Paramètres :BackgroundColor | blanc |
TestApp :Paramètres :FontColor | noir |
TestApp :Paramètres :FontSize | 40 |
TestApp :Paramètres :Message | Données de la configuration de l'application Azure |
Créer une application web ASP.NET
Démarrez Visual Studio et sélectionnez Créer un projet.
Sélectionnez ASP.NET application web (.NET Framework) avec C# dans la liste des modèles de projet, puis appuyez sur Suivant.
Dans Configurer votre nouveau projet , entrez un nom de projet. Sous Framework, sélectionnez .NET Framework 4.7.2 ou une version ultérieure. Appuyez sur Créer.
Dans Créer une application web ASP.NET, sélectionnez Web Forms. Appuyez sur Créer.
Recharger des données à partir d’Azure App Configuration
Cliquez avec le bouton droit sur votre projet, puis sélectionnez Gérer les packages NuGet. Sous l’onglet Parcourir, recherchez et ajoutez la dernière version des packages NuGet suivants à votre projet.
- Microsoft.Extensions.Configuration.AzureAppConfiguration
- Azure.Identity
Ouvrez Global.asax.cs fichier et ajoutez les espaces de noms suivants.
using Azure.Identity; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.AzureAppConfiguration;
Ajoutez les variables membres statiques suivantes à la
Global
classe.public static IConfiguration Configuration; private static IConfigurationRefresher _configurationRefresher;
Ajoutez une
Application_Start
méthode à laGlobal
classe. Si la méthode existe déjà, ajoutez-y le code suivant.protected void Application_Start(object sender, EventArgs e) { ConfigurationBuilder 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(new TimeSpan(0, 5, 0)); }); _configurationRefresher = options.GetRefresher(); }); Configuration = builder.Build(); }
La
Application_Start
méthode est appelée lors de la première requête adressée à votre application web. Elle n’est appelée qu’une seule fois pendant le cycle de vie de l’application. Par conséquent, il est judicieux d’initialiser votreIConfiguration
objet et de charger des données à partir d’App Configuration.Dans la
ConfigureRefresh
méthode, vous appelez laRegisterAll
méthode pour indiquer au fournisseur App Configuration de recharger l’intégralité de la configuration chaque fois qu’elle détecte une modification dans l’une des valeurs clés sélectionnées (celles commençant par TestApp : et sans étiquette). Pour plus d’informations sur la surveillance des modifications de configuration, consultez les meilleures pratiques pour l’actualisation de la configuration.La méthode
SetRefreshInterval
spécifie le temps minimum qui doit s'écouler avant qu'une nouvelle requête puisse être adressée à App Configuration pour rechercher les changements de configuration. Dans cet exemple, vous remplacez le temps d’expiration par défaut de 30 secondes, en spécifiant une durée de 5 minutes à la place. Cela réduit le nombre potentiel de demandes adressées à votre magasin App Configuration.Ajoutez une
Application_BeginRequest
méthode à laGlobal
classe. Si la méthode existe déjà, ajoutez-y le code suivant.protected void Application_BeginRequest(object sender, EventArgs e) { _ = _configurationRefresher.TryRefreshAsync(); }
L’appel de la méthode
ConfigureRefresh
seule n’entraîne pas l’actualisation automatique de la configuration. Vous appelez laTryRefreshAsync
méthode au début de chaque requête pour signaler une actualisation. Cette conception garantit que votre application envoie uniquement des requêtes à App Configuration lorsqu’elle reçoit activement des demandes.L’appel de
TryRefreshAsync
est une opération sans opération avant l’expiration de l’intervalle d’actualisation configuré, de sorte que son impact sur les performances est minimal. Lorsqu’une demande est envoyée à App Configuration, car vous n’attendez pas la tâche, la configuration est actualisée de façon asynchrone sans bloquer l’exécution de la requête actuelle. La requête actuelle peut ne pas obtenir les valeurs de configuration mises à jour, mais les requêtes suivantes le feront.Si l’appel
TryRefreshAsync
échoue pour une raison quelconque, votre application continue d’utiliser la configuration mise en cache. Une autre tentative est effectuée lorsque l’intervalle d’actualisation configuré est passé à nouveau et que l’appelTryRefreshAsync
est déclenché par une nouvelle demande adressée à votre application.
Utiliser les données de configuration les plus récentes
Ouvrez Default.aspx et remplacez son contenu par le balisage suivant. Vérifiez que l’attribut Hérite correspond à l’espace de noms et au nom de classe de votre application.
<%@ 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>
Ouvrez Default.aspx.cs et mettez-le à jour avec le code suivant.
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; } } }
Générer et exécuter l’application
Définissez une variable d’environnement.
Définissez une variable d’environnement nommée
Endpoint
sur le point de terminaison de votre magasin App Configuration trouvé sous la vue d’ensemble de votre magasin dans le portail Azure.Si vous utilisez l’invite de commandes Windows, exécutez la commande suivante et redémarrez l’invite pour que la modification soit prise en compte :
setx Endpoint "<endpoint-of-your-app-configuration-store>"
Si vous utilisez PowerShell, exécutez la commande suivante :
$Env:Endpoint = "<endpoint-of-your-app-configuration-store>"
Si vous utilisez macOS ou Linux, exécutez la commande suivante :
export Endpoint='<endpoint-of-your-app-configuration-store>'
Redémarrez Visual Studio pour que la modification soit prise en compte.
Appuyez sur Ctrl + F5 pour générer et exécuter l’application web.
Dans le portail Azure, accédez à l’Explorateur Configuration de votre magasin App Configuration et mettez à jour la valeur des clés suivantes.
Clé Valeur TestApp :Paramètres :BackgroundColor Vert TestApp :Paramètres :FontColor Gris clair TestApp :Paramètres :Message Données d’Azure App Configuration - maintenant avec des mises à jour actives ! Actualisez la page de navigateur pour afficher les nouveaux paramètres de configuration. Vous devrez peut-être actualiser plusieurs fois pour que les modifications soient reflétées ou que votre intervalle d’actualisation soit inférieur à 5 minutes.
Remarque
Vous pouvez télécharger l’exemple de code utilisé dans ce tutoriel à partir du dépôt GitHub Azure App Configuration.
Nettoyer les ressources
Si vous ne souhaitez plus utiliser les ressources créées dans cet article, supprimez le groupe de ressources que vous avez créé ici afin d’éviter des frais.
Important
La suppression d’un groupe de ressources est irréversible. Le groupe de ressources et toutes les ressources qu’il contient sont supprimés définitivement. Veillez à ne pas supprimer accidentellement les mauvaises ressources ou le mauvais groupe de ressources. Si vous avez créé les ressources pour cet article dans un groupe de ressources contenant d’autres ressources que vous souhaitez conserver, supprimez chaque ressource individuellement à partir de son volet, au lieu de supprimer l’intégralité du groupe de ressources.
- Connectez-vous au portail Azure, puis sélectionnez Groupes de ressources.
- Dans la zone Filtrer par nom, entrez le nom de votre groupe de ressources.
- Dans la liste de résultats, sélectionnez le nom du groupe de ressources pour afficher une vue d’ensemble.
- Sélectionnez Supprimer le groupe de ressources.
- Vous êtes invité à confirmer la suppression du groupe de ressources. Entrez le nom de votre groupe de ressources à confirmer, puis sélectionnez Supprimer.
Après quelques instants, le groupe de ressources et toutes ses ressources sont supprimés.
Étapes suivantes
Dans ce tutoriel, vous avez activé votre application ASP.NET Web Forms pour actualiser dynamiquement les paramètres de configuration à partir d’App Configuration. Pour savoir comment activer la configuration dynamique dans une application .NET Framework, passez au tutoriel suivant :
Pour savoir comment utiliser une identité managée Azure de façon à simplifier l’accès à App Configuration, passez au tutoriel suivant :