Configuración de una aplicación de ASP.NET para Azure App Service

Nota

Para ASP.NET Core, vea Configurar una aplicación de ASP.NET Core para Azure App Service. Si la aplicación ASP.NET se ejecuta en un contenedor personalizado de Windows o Linux, consulte Configuración de un contenedor personalizado para Azure App Service.

Las aplicaciones de ASP.NET deben implementarse en Azure App Service como binarios compilados. La herramienta de publicación de Visual Studio compila la solución y, a continuación, implementa los binarios compilados directamente, mientras que el motor de implementación de App Service implementa el repositorio de código en primer lugar y, a continuación, compila los binarios.

Esta guía incluye conceptos clave e instrucciones para los desarrolladores de ASP.NET. Si nunca ha usado Azure App Service, siga primero la guía de inicio rápido de ASP.NET y el tutorial de ASP.NET con SQL Database.

Mostrar las versiones del entorno de ejecución de .NET Framework

En App Service, las instancias de Windows ya tienen instaladas todas las versiones compatibles de .NET Framework. Para mostrar las versiones del SDK y .NET Framework Runtime disponibles para usted, vaya a https://<app-name>.scm.azurewebsites.net/DebugConsole y ejecute el comando correspondiente en la consola basada en el explorador:

Para las versiones de tiempo de ejecución de CLR 4 (.NET Framework 4 y posteriores):

ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework"

Es posible que la última versión de .NET Framework no esté disponible inmediatamente.

Para las versiones de tiempo de ejecución de CLR 2 (.NET Framework 3.5 y anteriores):

ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework"

Consulta de la versión de tiempo de ejecución actual de .NET Framework

En Cloud Shell, ejecute el comando siguiente:

az webapp config show --resource-group <resource-group-name> --name <app-name> --query netFrameworkVersion

El valor v4.0 indica que se utiliza la última versión de CLR 4 (.NET Framework 4.x). El valor v2.0 indica que se utiliza la versión de CLR 2 (.NET Framework 3.5).

Establecimiento de la versión de tiempo de ejecución de .NET Framework

De forma predeterminada, App Service usa la última versión de .NET Framework compatible para ejecutar la aplicación de ASP.NET. Para ejecutar la aplicación con .NET Framework 3.5, en cambio, ejecute el siguiente comando en Cloud Shell (v2.0 significa CLR 2):

az webapp config set --resource-group <resource-group-name> --name <app-name> --net-framework-version v2.0

Acceso a variables de entorno

En App Service, puede establecer la configuración de la aplicación y las cadenas de conexión fuera del código de la aplicación. Luego puede acceder a ellos en cualquier clase mediante el patrón de ASP.NET estándar:

using System.Configuration;
...
// Get an app setting
ConfigurationManager.AppSettings["MySetting"];
// Get a connection string
ConfigurationManager.ConnectionStrings["MyConnection"];
}

Si configura una opción de aplicación con el mismo nombre en App Service y en web.config, el valor de App Service tiene prioridad sobre el valor web.config. El valor de web.config local permite depurar la aplicación localmente, pero el valor de App Service permite la ejecución de la aplicación en el producto con la configuración de producción. Las cadenas de conexión funcionan de la misma manera. De este modo, puede conservar los secretos de aplicación fuera de su repositorio de código y tener acceso a los valores adecuados sin cambiar el código.

Implementar soluciones de varios proyectos

Cuando una solución de Visual Studio incluye varios proyectos, el proceso de publicación de Visual Studio ya incluye la selección del proyecto que se va a implementar. Al realizar la implementación en el motor de implementación de App Service, como con Git o con implementación de ZIP, con la automatización de compilaciones activada, el motor de implementación de App Service elige el primer sitio web o el proyecto de aplicación web que encuentra como aplicación de App Service. Para especificar el proyecto que App Service debe usar, especifique la configuración de la aplicación PROJECT. Por ejemplo, ejecute lo siguiente en Cloud Shell:

az webapp config appsettings set --resource-group <resource-group-name> --name <app-name> --settings PROJECT="<project-name>/<project-name>.csproj"

Obtener la página de excepciones detalladas

Cuando la aplicación de ASP.NET genera una excepción en el depurador de Visual Studio, el explorador muestra una página de excepciones detalladas, pero en App Service, esa página se sustituye por un mensaje de error genérico. Para mostrar la página de excepción detallada en App Service, abra el archivo Web.config y agregue el elemento <customErrors mode="Off"/> en el elemento <system.web>. Por ejemplo:

<system.web>
    <customErrors mode="Off"/>
</system.web>

Vuelva a implementar la aplicación con Web.config actualizado. Ahora debería ver la misma página de excepciones detallada.

Acceso a los registros de diagnóstico

Puede agregar mensajes de diagnóstico en el código de la aplicación mediante System.Diagnostics.Trace. Por ejemplo:

Trace.TraceError("Record not found!"); // Error trace
Trace.TraceWarning("Possible data loss"); // Warning trace
Trace.TraceInformation("GET /Home/Index"); // Information trace

Para acceder a los registros de la consola generados desde el código de la aplicación en App Service, active el registro de diagnósticos, para lo que debe ejecutar el siguiente comando en Cloud Shell:

az webapp log config --resource-group <resource-group-name> --name <app-name> --docker-container-logging filesystem --level Verbose

Los valores posibles de --level son: Error, Warning, Info y Verbose. Todos los niveles incluyen el nivel anterior. Por ejemplo: Error incluye solo los mensajes de error, mientras que Verbose incluye todos los mensajes.

Una vez que se activa el registro de contenedor, ejecute el siguiente comando para ver la transmisión del registro:

az webapp log tail --resource-group <resource-group-name> --name <app-name>

Si no ve los registros de la consola de inmediato, vuelve a comprobarlo en 30 segundos.

Nota

También puede inspeccionar los archivos de registro desde el explorador en https://<app-name>.scm.azurewebsites.net/api/logs/docker.

Para detener el streaming del registro en cualquier momento, escriba Ctrl+C.

Más recursos