Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los datos de App Configuration se pueden cargar como Configuración de la aplicación en una aplicación de .NET Framework. Para obtener más información, consulte el inicio rápido. Sin embargo, como está diseñado por .NET Framework, la configuración de la aplicación solo se puede actualizar tras el reinicio de la aplicación. El proveedor .NET de App Configuration es una biblioteca .NET Standard. Admite el almacenamiento en caché y la actualización dinámica de la configuración sin reiniciar la aplicación. En este tutorial se muestra cómo puede implementar actualizaciones de configuración dinámicas en una aplicación de formularios web Forms de ASP.NET. La misma técnica se aplica a las aplicaciones MVC de .NET Framework.
En este tutorial, aprenderá a:
- Configura la aplicación web de ASP.NET para actualizar su configuración en respuesta a los cambios en un almacén de Configuración de Aplicaciones.
- Inserte la configuración más reciente en las solicitudes a la aplicación.
Prerrequisitos
- Una cuenta de Azure con una suscripción activa. cree una de forma gratuita.
- Una tienda de configuración de aplicaciones. Crear un almacén.
- Visual Studio
- .NET Framework 4.7.2 o una versión posterior
Agregar pares de clave-valor
Agregue las siguientes claves y valores al almacenamiento de App Configuration y deje Etiqueta y Tipo de contenido con sus valores predeterminados. Para obtener más información sobre cómo agregar pares clave-valor a un almacén mediante Azure Portal o la CLI, vaya a Creación de un par clave-valor.
Clave | Importancia |
---|---|
TestApp:Configuración:Color de fondo | white |
TestApp:Settings:FontColor | negro |
TestApp:Settings:FontSize | 40 |
TestApp:Settings:Message | Datos de Azure App Configuration |
Creación de una aplicación web de ASP.NET
Inicie Visual Studio y seleccione Crear un proyecto.
Seleccione ASP.NET Aplicación web (.NET Framework) con C# en la lista de plantillas de proyecto y presione Siguiente.
En Configurar el nuevo proyecto, asígnele al proyecto un nombre. En Marco, seleccione .NET Framework 4.7.2 o una versión posterior. Pulse Crear.
En Crear una nueva aplicación web ASP.NET, seleccione Formularios web. Pulse Crear.
Recarga de datos de App Configuration
Haga clic con el botón derecho en el proyecto y seleccione Administrar paquetes NuGet. En la pestaña Examinar , busque y agregue la versión más reciente de los siguientes paquetes NuGet al proyecto.
- Microsoft.Extensions.Configuration.AzureAppConfiguration
- Azure.Identity
Abra Global.asax.cs archivo y agregue los siguientes espacios de nombres.
using Azure.Identity; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.AzureAppConfiguration;
Agregue las siguientes variables de miembro estático a la
Global
clase .public static IConfiguration Configuration; private static IConfigurationRefresher _configurationRefresher;
Agregue un
Application_Start
método a laGlobal
clase . Si el método ya existe, agregue el código siguiente.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(); }
El método
Application_Start
se invoca al recibir la primera solicitud a la aplicación web. Se llama solo una vez durante el ciclo de vida de la aplicación. Por lo tanto, es un buen lugar para inicializar elIConfiguration
objeto y cargar datos desde App Configuration.Dentro del método
ConfigureRefresh
, se invoca el métodoRegisterAll
para indicar al proveedor de App Configuration que recargue toda la configuración siempre que detecte un cambio en cualquiera de los pares clave-valor seleccionados (aquellos que empiezan por TestApp: y no tienen etiqueta). Para obtener más información sobre la supervisión de los cambios de configuración, consulte Procedimientos recomendados para la actualización de la configuración.El método
SetRefreshInterval
especifica el tiempo mínimo que debe transcurrir antes de que se realice una nueva solicitud a App Configuration para comprobar si hay cambios de configuración. En este ejemplo, invalida el tiempo de expiración predeterminado de 30 segundos, especificando una hora de 5 minutos en su lugar. Esto reduce el número posible de solicitudes realizadas al almacén de App Configuration.Agregue un
Application_BeginRequest
método a laGlobal
clase . Si el método ya existe, agregue el código siguiente.protected void Application_BeginRequest(object sender, EventArgs e) { _ = _configurationRefresher.TryRefreshAsync(); }
La llamada al método
ConfigureRefresh
por sí sola no hará que la configuración se actualice automáticamente. Llame alTryRefreshAsync
método al principio de cada solicitud para indicar una actualización. Este diseño garantiza que la aplicación solo envía solicitudes a App Configuration cuando recibe solicitudes activamente.Llamar a
TryRefreshAsync
no tiene efecto antes de que transcurra el intervalo de actualización configurado, por lo que su impacto en el rendimiento es mínimo. Cuando se realiza una solicitud a App Configuration, dado que no espera que la tarea se complete, la configuración se actualiza de manera asincrónica sin bloquear la ejecución de la solicitud actual. Es posible que la solicitud actual no obtenga los valores de configuración actualizados, pero las solicitudes posteriores lo harán.Si se produce un error en la llamada
TryRefreshAsync
por cualquier motivo, la aplicación seguirá usando la configuración almacenada en caché. Otro intento se realizará cuando se haya pasado de nuevo el intervalo de actualización configurado y laTryRefreshAsync
llamada se desencadene mediante una nueva solicitud a la aplicación.
Uso de los datos de configuración más recientes
Abra Default.aspx y reemplace su contenido por el marcado siguiente. Asegúrese de que el atributo Inherits coincide con el espacio de nombres y el nombre de clase de la aplicación.
<%@ 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>
Abra Default.aspx.cs y actualícelo con el código siguiente.
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; } } }
Compilación y ejecución de la aplicación
Establezca una variable de entorno.
Establezca una variable de entorno denominada
Endpoint
en el punto de conexión del almacén de App Configuration que se encuentra en la Información general del almacén en Azure Portal.Si usa el símbolo del sistema de Windows, ejecute el siguiente comando y reinícielo para que se aplique el cambio:
setx Endpoint "<endpoint-of-your-app-configuration-store>"
Si usa PowerShell, ejecute el siguiente comando:
$Env:Endpoint = "<endpoint-of-your-app-configuration-store>"
Si usa macOS o Linux, ejecute el siguiente comando:
export Endpoint='<endpoint-of-your-app-configuration-store>'
Reinicie Visual Studio para permitir que el cambio surta efecto.
Presione Ctrl + F5 para compilar y ejecutar la aplicación web.
En el Portal de Azure, navegue a la sección Configuration Explorer del almacén de App Configuration y actualice el valor de las siguientes claves.
Clave Importancia TestApp:Configuración:Color de fondo Verde TestApp:Settings:FontColor Gris claro TestApp:Settings:Message Datos de Azure App Configuration: ahora con actualizaciones en directo. Actualice la página del explorador para ver los nuevos valores de configuración. Es posible que tenga que actualizar más de una vez para que los cambios se reflejen o cambien el intervalo de actualización a menos de 5 minutos.
Nota:
Puede descargar el código de ejemplo que se usa en este tutorial desde el repositorio de GitHub de Azure App Configuration.
Limpieza de recursos
Si no quiere seguir usando los recursos que se han creado en este artículo, elimine el grupo de recursos que creó aquí para evitar cargos.
Importante
La eliminación de un grupo de recursos es irreversible. El grupo de recursos y todos los recursos que contiene se eliminan permanentemente. Asegúrese de que no elimina por accidente el grupo de recursos o los recursos equivocados. Si creó los recursos para este artículo en un grupo de recursos que contenga los recursos que desee conservar, elimine cada recurso de forma individual desde su panel respectivo, en lugar de eliminar el grupo de recursos.
- Inicie sesión en Azure Portal y después seleccione Grupos de recursos.
- En el cuadro de texto Filtrar por nombre, escriba el nombre del grupo de recursos.
- En la lista resultados, seleccione el nombre del grupo de recursos para ver la información general.
- Seleccione Eliminar grupo de recursos.
- Se le pedirá que confirme la eliminación del grupo de recursos. Escriba el nombre del grupo de recursos para confirmar y seleccione Eliminar.
Transcurridos unos instantes, el grupo de recursos y todos sus recursos se eliminan.
Pasos siguientes
En este tutorial, ha habilitado la aplicación ASP.NET Web Forms para actualizar dinámicamente las opciones de configuración desde App Configuration. Para obtener información sobre cómo habilitar la configuración dinámica en una aplicación de .NET Framework, continúe con el siguiente tutorial:
Para aprender a usar una identidad administrada de Azure para simplificar el acceso a App Configuration, vaya al siguiente tutorial: