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.
Azure App Service proporciona un servicio de hospedaje web muy escalable y con aplicación de revisiones de un modo automático. En este tutorial se muestra cómo implementar una aplicación ASP.NET orientada a datos en App Service y conectarla a Azure SQL Database.
Cuando termine el tutorial, tendrá una aplicación ASP.NET conectada a una base de datos de Azure SQL que se ejecuta en Azure. En el ejemplo siguiente se muestra la interfaz de la aplicación.
En este tutorial, usted hará lo siguiente:
- Publique una aplicación web controlada por datos en Azure.
- Cree una base de datos de Azure SQL para almacenar los datos de la aplicación.
- Conecte la aplicación ASP.NET a la base de datos de Azure SQL.
- Configure una identidad administrada y la autenticación de identidad de Microsoft Entra para la conexión de la base de datos.
- Actualice el modelo de datos y vuelva a implementar la aplicación.
- Transmisión de registros de aplicaciones de Azure a Visual Studio.
Requisitos previos
- Si no tiene una cuenta de Azure, cree una cuenta gratuita antes de comenzar.
- Instale Visual Studio 2022 con las cargas de trabajo ASP.NET y desarrollo web y desarrollo de Azure.
- Para agregar las cargas de trabajo a una instalación de Visual Studio existente, seleccione Obtener herramientas y características en el menú Herramientas de Visual Studio.
- Asegúrese de que tiene las actualizaciones más recientes de Visual Studio 2022 seleccionando Buscar>actualizaciones e instalando la versión más reciente si es necesario.
Creación y ejecución de la aplicación
El proyecto de ejemplo contiene una aplicación básica ASP.NET MVC create-read-update-delete (CRUD) que usa Entity Framework Code First.
Descargue el proyecto de ejemplo y extraiga el archivo dotnet-sqldb-tutorial-master.zip .
Abra el archivo dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln extraído en Visual Studio.
Presione F5 para ejecutar la aplicación y abrirla en el explorador predeterminado.
Nota:
Si es necesario, instale los paquetes NuGet que falten.
En la aplicación, seleccione Crear nuevo y cree un par de elementosto-do .
Pruebe los vínculos Editar, Detalles y Eliminar.
Publicación de la aplicación en Azure
Para publicar la aplicación en Azure, cree y configure un perfil de publicación que tenga un Azure App Service y un App Service Plan para hospedar la aplicación. A continuación, cree una base de datos de Azure SQL Server y Azure SQL para que contenga los datos de la aplicación y configure un contexto de base de datos para conectar la aplicación con la base de datos.
En el Explorador de soluciones de Visual Studio, haga clic con el botón derecho en el proyecto DotNetAppSqlDb y seleccione Publicar.
En la pantalla Publicar , seleccione Azure como destino y seleccione Siguiente.
En la pantalla siguiente, asegúrese de que Azure App Service (Windows) esté seleccionado y seleccione Siguiente.
Iniciar sesión y agregar un servicio de aplicaciones de Azure
En la siguiente pantalla Publicar , inicie sesión en su cuenta Microsoft y en la suscripción que desea usar.
Junto a App Service, seleccione Crear nuevo.
Configuración de Azure App Service
En la pantalla App Service (Windows), configure el nombre de App Service, el grupo de recursos y el plan de hospedaje.
En Nombre, puede conservar el nombre de la aplicación web generada o cambiarlo a otro nombre con caracteres
a-z,0-9y-. El nombre de la aplicación web debe ser único en todas las aplicaciones de Azure.Junto a Grupo de recursos, seleccione Nuevo y asigne al grupo de recursos el nombre myResourceGroup.
Un grupo de recursos es un contenedor lógico en el que los recursos de Azure, como aplicaciones web, bases de datos y cuentas de almacenamiento, se implementen y administren. Por ejemplo, más adelante puede elegir eliminar todo el grupo de recursos en un solo paso.
Junto a Plan de hospedaje, seleccione Nuevo.
Un plan de App Service especifica la ubicación, el tamaño y las características de la granja de servidores web que hospeda la aplicación. Para ahorrar dinero cuando hospede varias aplicaciones, configure las aplicaciones web para que compartan un único plan de App Service.
Los planes de App Service definen lo siguiente:
- Región (por ejemplo: Norte de Europa, Este de EE. UU. o Sudeste de Asia)
- Tamaño de la instancia (pequeño, mediano o grande)
- Recuento de escala (de 1 a 20 instancias)
- SKU (Gratis, Compartido, Básico, Estándar o Premium)
Complete la pantalla Plan de hospedaje y, a continuación, seleccione Aceptar.
Configuración Valor sugerido Para obtener más información Plan de App Service myAppServicePlan Planes de App Service Ubicación Este de EE. UU. Regiones de Azure Tamaño Gratis Planes de tarifa
En la pantalla App Service (Windows), seleccione Crear y espere a que se creen los recursos de Azure.
En la pantalla Publicar se muestran los recursos configurados. Selecciona Finalizar y, después, Cerrar.
Creación de un servidor y una base de datos
Para poder crear una base de datos, necesita un servidor SQL server lógico. Un servidor SQL lógico es una estructura lógica que contiene un conjunto de bases de datos administradas como un grupo.
En la pantalla Publicar de la aplicación DotNetAppSqlDb, en la sección Dependencias de servicio, seleccione los puntos suspensivos ... junto a SQL Server Database y seleccione Conectar.
Nota:
Asegúrese de configurar SQL Database desde la pestaña Publicar , no en la pestaña Servicios conectados .
En la pantalla Conectarse a dependencias , seleccione Azure SQL Database y, a continuación, seleccione Siguiente.
En la pantalla Configurar Azure SQL Database , seleccione Crear nuevo.
En la pantalla Azure SQL Database , junto al servidor de bases de datos, seleccione Nuevo.
Cambie el nombre del servidor al valor que desee. El nombre del servidor debe ser único en todos los servidores de Azure SQL.
Selecciona Aceptar.
En la pantalla Azure SQL Database , mantenga el nombre de la base de datos generado de forma predeterminada. Seleccione Crear y espere a que se cree el recurso.
Cuando se creen los recursos de la base de datos, seleccione Siguiente.
En la pantalla Conectar a Azure SQL Database , seleccione Finalizar.
Nota:
Si en su lugar ve archivos de secretos de usuario locales , asegúrese de usar la página Publicar , no la página Servicios conectados , para configurar SQL Database.
La conexión de Azure SQL Database ahora está configurada para usar la identidad administrada para los servicios de Azure, un método seguro para conectar la aplicación a los recursos de Azure que no usan secretos ni contraseñas. Ahora debe establecer los permisos adecuados en el usuario de SQL correspondiente a esta identidad administrada para que funcione la conexión.
Configuración de una identidad administrada
Cuando el Asistente para la creación de Azure SQL Database configuró el Azure SQL Server con una identidad administrada y la autenticación predeterminada de Entra ID, añadió su cuenta de Entra ID como administrador de Azure SQL. Si ha iniciado sesión en la misma cuenta en Visual Studio, puede usar la misma cadena de conexión para conectarse a la base de datos tanto en Visual Studio como en Azure.
En el menú Herramientas, seleccione Administrador de paquetes NuGet>Consola del Administrador de paquetes.
En la consola del Administrador de paquetes, instale los siguientes paquetes:
Install-Package Microsoft.Data.SqlClient Install-Package Microsoft.EntityFramework.SqlServerEn una línea de comandos de PowerShell, ejecute el siguiente comando para iniciar sesión en SQL Database, reemplazando por
<server-name>el nombre del servidor y<entra-id-user>por el nombre de usuario de Microsoft Entra que usó para configurar la base de datos en Visual Studio. Ese usuario de Entra tiene acceso de administrador al servidor de bases de datos de forma predeterminada.sqlcmd -S <servername>.database.windows.net -d DotNetAppSqlDb_db -U <entra-id-user> -G -l 30Siga las indicaciones para iniciar sesión.
En el símbolo del sistema SQL, ejecute los siguientes comandos para conceder los permisos mínimos que necesita la aplicación, reemplazando
<app-name>por el nombre de la aplicación.CREATE USER [<app-name>] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [<app-name>]; ALTER ROLE db_datawriter ADD MEMBER [<app-name>]; ALTER ROLE db_ddladmin ADD MEMBER [<app-name>]; GO
Actualización del contexto de la base de datos
La aplicación usa un contexto de base de datos para conectarse a la base de datos, al que se hace referencia en el archivo Models/MyDatabaseContext.cs . En esta sección, actualiza el código para hacer referencia al proveedor de SQL Server de Entity Framework 6, que depende del moderno proveedor de ADO.NET Microsoft.Data.SqlClient.
El proveedor de Entity Framework 6 reemplaza al proveedor de SQL Server integrado System.Data.SqlClient e incluye compatibilidad con los métodos de autenticación de Microsoft Entra ID. Para obtener más información, vea Microsoft.EntityFramework.SqlServer}.
[DbConfigurationType(typeof(MicrosoftSqlDbConfiguration))] funciona localmente para usar Microsoft.Data.SqlClient para el contexto de la base de datos, pero dado que System.Data.SqlClient está predefinido como el proveedor en Azure App Service, debe ampliar MicrosoftSqlDbConfiguration para redirigir las referencias a System.Data.SqlClient a Microsoft.Data.SqlClient en su lugar.
En web.config, quite la sección
entityFramework/providers/providery la línea<provider invariantName="System.Data.SqlClient" .../>.En Models/MyDatabaseContext.cs, agregue la siguiente clase:
public class AppServiceConfiguration : MicrosoftSqlDbConfiguration { public AppServiceConfiguration() { SetProviderFactory("System.Data.SqlClient", Microsoft.Data.SqlClient.SqlClientFactory.Instance); SetProviderServices("System.Data.SqlClient", MicrosoftSqlProviderServices.Instance); SetExecutionStrategy("System.Data.SqlClient", () => new MicrosoftSqlAzureExecutionStrategy()); } }Agregue el atributo siguiente a la declaración de
MyDatabaseContextclase:[DbConfigurationType(typeof(AppServiceConfiguration))]
Implementación de la aplicación de ASP.NET
En la parte superior de la pestaña Publicar , seleccione Publicar. La aplicación ASP.NET se implementa en Azure y el explorador predeterminado se inicia en la dirección URL de la aplicación implementada.
Para probar la aplicación, agregue algunos elementos to-do.
Felicidades. La aplicación ASP.NET orientada a datos se ejecuta en directo en Azure App Service.
Usar el Explorador de objetos de SQL Server
Puede usar el Explorador de objetos de SQL Server de Visual Studio para explorar y administrar fácilmente la base de datos de Azure SQL. En el Explorador de objetos de SQL Server, puede realizar operaciones de base de datos más comunes, como ejecutar consultas o crear tablas, vistas y procedimientos almacenados.
Permitir la conexión de cliente desde el equipo
De forma predeterminada, el servidor de Azure permite las conexiones a sus bases de datos solo desde servicios de Azure, como la aplicación de Azure. La nueva base de datos permitió el acceso a través de su firewall a la aplicación App Service que creó.
Para acceder a la base de datos desde el equipo local, como desde Visual Studio, el servidor de Azure debe abrir el firewall para permitir el acceso a la dirección IP pública del equipo.
Si se le pide que agregue acceso al cliente local, asegúrese de seleccionar la opción Permitir la dirección IP pública del equipo. Esta opción crea una regla de firewall para permitir la dirección IP pública del equipo local. El cuadro de diálogo ya se ha rellenado con la dirección IP actual del equipo.
Si no recibe un mensaje para agregar acceso al equipo local, puede ir a la base de datos de Azure SQL en Azure Portal y seleccionar Establecer firewall de servidor en la barra de menús superior. En la página Redes , en Reglas de firewall, seleccione la opción Agregar la dirección IPv4 del cliente.
Nota:
Si el proveedor de servicios de Internet cambia la dirección IP pública, debe volver a configurar el firewall para acceder de nuevo a la base de datos de Azure.
Conexión a la base de datos de Azure SQL localmente
En el menú Ver, seleccione Explorador de objetos de SQL Server.
En la parte superior de la ventana Explorador de objetos de SQL Server , seleccione el icono agregar SQL Server.
En la pantalla Conectar , la conexión aparece en el nodo de Azure . Complete la información del nombre del servidor, el nombre de usuario, la contraseña y el nombre de la base de datos y seleccione Conectar.
Una vez que Visual Studio termine de configurar la conexión para la instancia de SQL Database, la base de datos aparece en el Explorador de objetos de SQL Server. Expanda <el nombre de conexión>>Bases de datos><el nombre de la base de datos>> para ver los datos.
Expanda Tablas, haga clic con el botón derecho en la
ToDoestabla y seleccione Ver datos para interactuar con los datos de la base de datos.
Actualización de la aplicación con migraciones de Code First
Puede usar herramientas conocidas en Visual Studio para actualizar la base de datos y la aplicación en Azure. En este paso, usará Migraciones de Code First en Entity Framework para cambiar el esquema de la base de datos y publicar el cambio en Azure.
Para más información sobre el uso de Entity Framework Code First Migrations, consulte Getting Started with Entity Framework 6 Code First using MVC 5 (Introducción a Entity Framework 6 Code First mediante MVC 5).
Actualización del modelo de datos
Abra Models\Todo.cs en el editor de código. Agregue la siguiente propiedad a la clase ToDo:
public bool Done { get; set; }
Ejecución de Migraciones de Code First
Ejecute algunos comandos para realizar actualizaciones en la base de datos local.
En el menú Herramientas, seleccione Administrador de paquetes NuGet>Consola del Administrador de paquetes.
En la ventana de la consola del Administrador de paquetes, habilite Migraciones de Code First:
Enable-MigrationsAgregue una migración:
Add-Migration AddPropertyActualice la base de datos local:
Update-DatabasePresione Ctrl+F5 para ejecutar la aplicación. Pruebe los vínculos Editar, Detalles y Crear nuevos .
Si la aplicación se carga sin errores, las migraciones de Code First se realizaron correctamente. Sin embargo, la página todavía tiene el mismo aspecto porque la lógica de aplicación no usa aún esta propiedad.
Uso de la nueva propiedad
Realice algunos cambios en el código para ver la Done propiedad en acción. En este tutorial, solo cambias las vistas Index y Create para usar la nueva propiedad.
Abra Controllers\TodosController.cs y, en el método de la
Create()línea 52, agregueDonea la lista de propiedades delBindatributo . La firma delCreate()método debe tener un aspecto similar al código siguiente:public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)Abra Views\Todos\Create.cshtml y, en el código de Razor, tenga en cuenta el
<div class="form-group">elemento que usamodel.Descriptiony el<div class="form-group">elemento que usamodel.CreatedDate.Después de estos dos elementos, agregue el siguiente
<div class="form-group">elemento que usamodel.Done:<div class="form-group"> @Html.LabelFor(model => model.Done, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> <div class="checkbox"> @Html.EditorFor(model => model.Done) @Html.ValidationMessageFor(model => model.Done, "", new { @class = "text-danger" }) </div> </div> </div>Abra Views\Todos\Index.cshtml y, justo encima del elemento vacío
<th></th>, agregue el siguiente código de Razor:<th> @Html.DisplayNameFor(model => model.Done) </th>Encima del
<td>elemento que contiene losHtml.ActionLink()métodos auxiliares, agregue otro<td>elemento con el siguiente código de Razor:<td> @Html.DisplayFor(modelItem => item.Done) </td>Guarde todos los archivos y presione Ctrl+F5 para ejecutar la aplicación.
En la aplicación, agregue un elemento de to-do y seleccione Listo. El elemento debe aparecer en la página principal como un elemento completado. La vista Editar no muestra el campo Listo , porque no cambió la vista Editar .
Habilitación de Migraciones de Code First en Azure
Ahora que el cambio de código funciona, incluida la migración de bases de datos, también puede publicarlo en la aplicación de Azure y actualizar la base de datos de Azure SQL con migraciones de Code First.
En el Explorador de soluciones de Visual Studio, haga clic con el botón derecho en el proyecto y seleccione Publicar.
Seleccione Más acciones>Editar para abrir la configuración de publicación.
En la lista desplegable MyDatabaseContext , seleccione la conexión de base de datos para la base de datos de Azure SQL.
Seleccione Ejecutar migraciones de Code First (se ejecuta en el inicio de la aplicación) y, a continuación, seleccione Guardar.
Publicación de los cambios
Ahora que ha habilitado Migraciones de Code First en su aplicación de Azure, publique los cambios en el código.
En la página Publicar, seleccione Publicar.
En la aplicación web publicada, intente agregar más to-do elementos de nuevo y seleccione Listo y debería aparecer en la página principal como elementos completados.
Aún se muestran todas las tareas pendientes existentes. Al volver a publicar la aplicación ASP.NET, no se pierden los datos existentes en la base de datos de Azure SQL. Además, Las migraciones de Code First solo cambian el esquema de datos y dejan intactos los datos.
Transmisión de registros de aplicación
Puede transmitir mensajes de seguimiento directamente desde la aplicación de Azure hasta Visual Studio.
Abra Controllers\TodosController.cs y tenga en cuenta que cada acción comienza con un Trace.WriteLine() método . Este código muestra cómo agregar mensajes de seguimiento a la aplicación de Azure.
Habilitación de la secuencia de registros
En la página Publicar de Visual Studio, desplácese hacia abajo hasta la sección Hospedaje .
Seleccione los puntos suspensivos ... en la esquina superior derecha y seleccione Ver registros de streaming.
Los registros se insertan ahora en la ventana Salida.
Aún no ve ningún mensaje de seguimiento, ya que al seleccionar Ver registros de streaming por primera vez, la aplicación de Azure establece el nivel
Errorde seguimiento en , que registra solo los eventos de error mediante elTrace.TraceError()método .
Cambio de los niveles de seguimiento
Para cambiar los niveles de seguimiento para generar otros mensajes de seguimiento, en la sección Hospedaje de la página Publicar , seleccione ... en la esquina superior derecha y, a continuación, seleccione Abrir en Azure Portal.
En la página del Azure Portal para tu aplicación, selecciona App Service logs en Supervisión en el menú izquierdo.
En Registro de aplicaciones (sistema de archivos), seleccione Detallado en Nivel y, a continuación, seleccione Guardar.
Sugerencia
Puede experimentar con diferentes niveles de seguimiento para ver qué tipos de mensajes se muestran para cada nivel. Por ejemplo, el nivel Información incluye todos los registros creados por
Trace.TraceInformation(),Trace.TraceWarning()yTrace.TraceError(), pero no los registros creados porTrace.WriteLine().En el explorador, vaya de nuevo a la aplicación de lista de tareas pendientes de Azure y vaya a la aplicación. Los mensajes de seguimiento, como los siguientes ejemplos, ahora se transmiten a la ventana de Salida de Visual Studio.
Application:2025-05-12T23:41:11 PID[17108] Verbose GET /Todos/Index Application:2025-05-12T23:42:04 PID[17108] Verbose GET /Todos/Index Application:2025-05-12T23:42:06 PID[17108] Verbose POST /Todos/Create Application:2025-05-12T23:42:07 PID[17108] Verbose GET /Todos/Index
Detención de las secuencias de registro
Para detener el servicio de streaming de registros, seleccione el icono Detener supervisión en la ventana Salida .
Limpieza de recursos
En los pasos anteriores, creó recursos de Azure en un grupo de recursos. Si no cree que vaya a necesitar estos recursos en el futuro, puede eliminarlos mediante la eliminación del grupo de recursos.
- En la página Información general de la aplicación web de Azure Portal, seleccione el vínculo myResourceGroup en Grupo de recursos.
- En la página del grupo de recursos, asegúrese de que los recursos enumerados sean los que desea eliminar.
- Seleccione Eliminar grupo de recursos, escriba myResourceGroup en el cuadro de texto y seleccione Eliminar.
- Vuelva a confirmar seleccionando Eliminar.
Contenido relacionado
- Configuración de una aplicación de ASP.NET para Azure App Service
- Inicio rápido: Empezar a usar Análisis de costos
Vaya al siguiente tutorial para aprender a usar la identidad administrada para mejorar la seguridad de la conexión de Azure SQL Database.