Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I dati di Configurazione app possono essere caricati come impostazioni app in un'applicazione .NET Framework. Per altre informazioni, vedere la guida introduttiva. Tuttavia, come è progettato da .NET Framework, le impostazioni dell'app possono essere aggiornate solo al riavvio dell'applicazione. Il provider App Configuration .NET è una libreria .NET Standard. Supporta la memorizzazione nella cache e l'aggiornamento della configurazione in modo dinamico senza il riavvio dell'applicazione. Questa esercitazione illustra come implementare gli aggiornamenti della configurazione dinamica in un'applicazione Web Form ASP.NET. La stessa tecnica si applica alle applicazioni MVC di .NET Framework.
In questa esercitazione si apprenderà come:
- Configurare l'applicazione Web ASP.NET per aggiornare la sua configurazione in risposta alle modifiche in un archivio di configurazione delle app.
- Inserire la configurazione più recente nelle richieste all'applicazione.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creane uno gratis.
- Un servizio di configurazione delle app. Creare un negozio.
- Visual Studio
- .NET Framework 4.7.2 o versione successiva
Aggiungere coppie chiave-valore
Aggiungere il valore chiave seguente all'archivio di Configurazione app e lasciare Etichetta e Tipo di contenuto con i valori predefiniti. Per altre informazioni su come aggiungere valori chiave a un archivio usando il portale di Azure o l’interfaccia della riga di comando, andare a Creare un valore chiave.
Chiave | Valore |
---|---|
TestApp:Settings:BackgroundColor | Bianco |
TestApp:Settings:FontColor | nero |
TestApp:Settings:FontSize | 40 |
TestApp:Settings:Message | Dati di Configurazione app di Azure |
Creare un'applicazione Web ASP.NET
Avviare Visual Studio e selezionare Crea un nuovo progetto.
Selezionare ASP.NET'applicazione Web (.NET Framework) con C# dall'elenco dei modelli di progetto e premere Avanti.
In Configura il nuovo progetto immettere un nome di progetto. In Framework selezionare .NET Framework 4.7.2 o versione successiva. Fare clic su Crea.
In Crea una nuova applicazione Web ASP.NET selezionare Web Form. Fare clic su Crea.
Ricarica i dati dalla configurazione dell'applicazione
Fare clic con il pulsante destro del mouse sul progetto e scegliere Gestisci pacchetti NuGet. Nella scheda Sfoglia, cercare e aggiungere ai vostri progetti la versione più recente dei seguenti pacchetti NuGet.
- Microsoft.Extensions.Configuration.AzureAppConfiguration
- Azure.Identity
Aprire il file Global.asax.cs e aggiungere i namespace seguenti.
using Azure.Identity; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.AzureAppConfiguration;
Aggiungere le variabili membro statiche seguenti alla
Global
classe .public static IConfiguration Configuration; private static IConfigurationRefresher _configurationRefresher;
Aggiungere un
Application_Start
metodo allaGlobal
classe . Se il metodo esiste già, aggiungervi il codice seguente.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(); }
Il
Application_Start
metodo viene chiamato alla prima richiesta all'applicazione Web. Viene chiamato una sola volta durante il ciclo di vita dell'applicazione. Pertanto, è consigliabile inizializzare l'oggettoIConfiguration
e caricare i dati dall'App Configuration.All'interno del
ConfigureRefresh
metodo si chiama ilRegisterAll
metodo per indicare al provider di Configurazione app di ricaricare l'intera configurazione ogni volta che rileva una modifica in uno dei valori chiave selezionati (quelli che iniziano con TestApp: e non hanno etichetta). Per altre informazioni sul monitoraggio delle modifiche alla configurazione, vedere Procedure consigliate per l'aggiornamento della configurazione.Il
SetRefreshInterval
metodo specifica il tempo minimo che deve trascorrere prima che venga effettuata una nuova richiesta a Configurazione app per verificare la presenza di eventuali modifiche alla configurazione. In questo esempio si esegue l'override dell'ora di scadenza predefinita di 30 secondi, specificando invece un'ora di 5 minuti. Riduce il numero potenziale di richieste effettuate all'archivio di Configurazione app.Aggiungere un
Application_BeginRequest
metodo allaGlobal
classe . Se il metodo esiste già, aggiungervi il codice seguente.protected void Application_BeginRequest(object sender, EventArgs e) { _ = _configurationRefresher.TryRefreshAsync(); }
La chiamata al
ConfigureRefresh
metodo da solo non causerà l'aggiornamento automatico della configurazione. Chiamare ilTryRefreshAsync
metodo all'inizio di ogni richiesta per segnalare un aggiornamento. Questa progettazione garantisce che l'applicazione invii richieste solo a Configurazione app quando riceve attivamente le richieste.La chiamata a
TryRefreshAsync
è un no-op prima che l'intervallo di aggiornamento configurato sia trascorso, quindi l'impatto sulle prestazioni è minimo. Quando viene effettuata una richiesta a Configurazione App, non dovendo attendere il completamento dell'attività, la configurazione si aggiorna in modo asincrono senza bloccare l'esecuzione della richiesta corrente. La richiesta corrente potrebbe non ottenere i valori di configurazione aggiornati, ma le richieste successive verranno eseguite.Se la chiamata
TryRefreshAsync
non riesce per qualsiasi motivo, l'applicazione continuerà a usare la configurazione memorizzata nella cache. Un altro tentativo verrà eseguito quando l'intervallo di aggiornamento configurato è passato di nuovo e laTryRefreshAsync
chiamata viene attivata da una nuova richiesta all'applicazione.
Usare i dati di configurazione più recenti
Aprire Default.aspx e sostituirne il contenuto con il markup seguente. Assicurarsi che l'attributo Inherits corrisponda allo spazio dei nomi e al nome della classe dell'applicazione.
<%@ 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>
Aprire Default.aspx.cs e aggiornarlo con il codice seguente.
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; } } }
Compilare ed eseguire l'applicazione
Impostare una variabile di ambiente.
Impostare una variabile di ambiente denominata
Endpoint
sull'endpoint dell'archivio di Configurazione app disponibile in Panoramica dello store nel portale di Azure.Se si usa il prompt dei comandi di Windows, eseguire il comando seguente e riavviare il prompt per rendere effettiva la modifica:
setx Endpoint "<endpoint-of-your-app-configuration-store>"
Se si usa PowerShell, eseguire il comando seguente:
$Env:Endpoint = "<endpoint-of-your-app-configuration-store>"
Se si usa macOS o Linux, eseguire il comando seguente:
export Endpoint='<endpoint-of-your-app-configuration-store>'
Riavviare Visual Studio per rendere effettiva la modifica.
Premere CTRL+F5 per compilare ed eseguire l'applicazione Web.
Nel portale di Azure passare a Esplora configurazione dell'archivio di Configurazione app e aggiornare il valore delle chiavi seguenti.
Chiave Valore TestApp:Settings:BackgroundColor Verde TestApp:Settings:FontColor LightGray TestApp:Settings:Message Dati da Azure App Configuration - ora con aggiornamenti in tempo reale! Aggiornare la pagina del browser per visualizzare le nuove impostazioni di configurazione. Potrebbe essere necessario aggiornare più volte prima che le modifiche siano visibili o modificare l'intervallo di aggiornamento a meno di 5 minuti.
Annotazioni
È possibile scaricare il codice di esempio utilizzato in questo tutorial dal repository GitHub di Configurazione Azure App.
Pulire le risorse
Se non si vuole continuare a usare le risorse create in questo articolo, eliminare il gruppo di risorse creato qui per evitare addebiti.
Importante
L'eliminazione di un gruppo di risorse è irreversibile. Il gruppo di risorse e tutte le risorse in esso contenute vengono eliminati in modo permanente. Assicurarsi di non eliminare accidentalmente il gruppo di risorse o le risorse sbagliate. Se le risorse per questo articolo sono state create in un gruppo di risorse che contiene altre risorse che si vogliono mantenere, eliminare ogni risorsa singolarmente dal rispettivo riquadro anziché eliminare il gruppo di risorse.
- Accedere al portale di Azure e selezionare Gruppi di risorse.
- Nella casella Filtra per nome immettere il nome del gruppo di risorse.
- Nell'elenco dei risultati selezionare il nome del gruppo di risorse per visualizzare una panoramica.
- Selezionare Elimina gruppo di risorse.
- Verrà chiesto di confermare l'eliminazione del gruppo di risorse. Immettere il nome del gruppo di risorse per confermare e selezionare Elimina.
Dopo qualche istante, il gruppo di risorse e tutte le risorse che contiene vengono eliminati.
Passaggi successivi
Nella presente esercitazione, hai abilitato la tua applicazione Web Forms ASP.NET per aggiornare dinamicamente le impostazioni di configurazione da Configurazione app. Per informazioni su come abilitare la configurazione dinamica in un'app .NET Framework, passare all'esercitazione successiva:
Per informazioni su come usare un'identità gestita di Azure per semplificare l'accesso a Configurazione app, continuare con l'esercitazione successiva: