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.
Nota
Para ASP.NET Core, consulte Configuración de una aplicación ASP.NET Core para Azure App Service. Si la aplicación de 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 has usado Azure App Service, sigue primero el inicio rápido de ASP.NET y el tutorial de ASP.NET con base de datos SQL.
Mostrar las versiones admitidas 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 el entorno de ejecución y las versiones del SDK de .NET Framework disponibles, vaya a la aplicación en Azure Portal. Seleccione Herramientas de Desarrollo>Herramientas Avanzadas. Seleccione Continuar. En Kudu, seleccione Consola de depuración para CMD o PowerShell. Ejecute el comando adecuado en la consola basada en 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"
Si no se admite el tiempo de ejecución que requiere la aplicación, puede implementarla con un contenedor personalizado.
Consulta de la versión de tiempo de ejecución actual de .NET Framework
Ejecute el siguiente comando en Cloud Shell:
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 su lugar, 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
¿Qué ocurre con los tiempos de ejecución obsoletos en App Service?
Los tiempos de ejecución obsoletos están en desuso por parte de la organización de mantenimiento o han detectado que tienen vulnerabilidades significativas. En consecuencia, se eliminan de las páginas de creación y configuración en el portal. Cuando un tiempo de ejecución obsoleto está oculto en el portal, cualquier aplicación que siga usando ese tiempo de ejecución continúa ejecutándose.
Si quiere crear una aplicación con una versión en tiempo de ejecución obsoleta que ya no se muestra en el portal, use la CLI de Azure, la plantilla de ARM o Bicep. Estas alternativas de implementación permiten crear entornos de ejecución en desuso que se han quitado en el portal, pero aún se admiten.
Si un entorno de ejecución se quita completamente de la plataforma de App Service, el propietario de la suscripción de Azure recibe un aviso por correo electrónico antes de la eliminación.
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 configuras una opción de aplicación con el mismo nombre en App Service y en web.config, el valor de App Service prevalece sobre el valor de 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.
Nota
Considere las opciones de conectividad más seguras que no requieren secretos de conexión. Para más información, consulte Conectividad segura a servicios y bases de datos de Azure desde Azure App Service.
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 implementar en el motor de implementación de App Service, como con Git o con la implementación ZIP con la automatización de compilación habilitada, el motor de implementación de App Service elige el primer sitio web o proyecto de aplicación web que encuentra como la 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 excepciones detallada en App Service, abra el archivo Web.config y agregue el <customErrors mode="Off"/>
elemento bajo el <system.web>
elemento . 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 consola generados desde el código de la aplicación en App Service, active el registro de diagnóstico mediante la ejecución del 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 para --level
son Error
, Warning
, Info
y Verbose
. Cada nivel subsiguiente incluye el nivel anterior. Por ejemplo, Error
solo incluye mensajes de error.
Verbose
incluye todos los mensajes.
Después de activar el registro de diagnóstico, ejecute el siguiente comando para ver la secuencia de registro:
az webapp log tail --resource-group <resource-group-name> --name <app-name>
Si los registros de consola no aparecen inmediatamente, vuelva a comprobar en 30 segundos.
Para detener el streaming de registros en cualquier momento, seleccione Ctrl+C.