Solución de problemas de una aplicación en Azure App Service con Visual Studio
Nota:
Este artículo es para Visual Studio 2019. Para solucionar problemas en Visual Studio 2022, consulte Depuración remota ASP.NET Core en Azure App Service.
Información general
En este tutorial se muestra cómo usar herramientas de Visual Studio para ayudar a depurar una aplicación en App Service, ya sea en modo de depuración de manera remota o consultando los registros del servidor web o de aplicación.
Aprenderá a realizar los siguientes procedimientos:
- Qué funciones de administración de aplicaciones de Azure están disponibles en Visual Studio.
- Uso de la vista remota de Visual Studio para realizar cambios rápidos en una aplicación remota.
- Ejecución del modo de depuración de manera remota mientras un proyecto se ejecuta en Azure, tanto para una aplicación como para un WebJob.
- Creación de registros de seguimiento de aplicación y su visualización mientras los crea la aplicación.
- Visualización de registros de servidor web, incluidos mensajes de error detallados y seguimiento de solicitudes con error.
- Envío de registros de diagnóstico a una cuenta de Azure Storage y su visualización aquí.
Si tiene Visual Studio Ultimate, también puede usar IntelliTrace para la depuración. IntelliTrace no se trata en este tutorial.
Requisitos previos
Este tutorial funciona con el entorno de desarrollo, proyecto web y aplicación App Service que configuró en Creación de una aplicación web de ASP.NET Framework en Azure. Para las secciones de WebJobs, necesitará la aplicación que creó en Introducción al SDK de Azure WebJobs.
Los ejemplos de código que aparecen en este tutorial son para una aplicación web C# MVC, pero los procedimientos de solución de problemas son los mismos para las aplicaciones de Web Forms y Visual Basic.
En el tutorial se supone que está usando Visual Studio 2019.
La característica de registros de streaming solo funciona para aplicaciones dirigidas a .NET Framework 4 o superior.
Administración y configuración de la aplicación
Visual Studio proporciona acceso a un subconjunto de las funciones de administración de aplicaciones y los ajustes de configuración disponibles en Azure Portal. En esta sección podrá ver las opciones y funciones disponibles mediante el Explorador de servidores. Para ver las últimas características de integración de Azure, pruebe también Cloud Explorer . Puede abrir dos ventanas del menú Ver .
Si aún no ha iniciado sesión en Azure en Visual Studio, haga clic con el botón derecho en Azure y seleccione Conectar a la suscripción de Microsoft Azure en el Explorador de servidores.
Una alternativa es instalar un certificado de administración que permita el acceso a su cuenta. Si elige instalar un certificado, haga clic con el botón derecho en el nodo Azure del Explorador de servidores y, a continuación, seleccione Administrar y filtrar suscripciones en el menú contextual. En el cuadro de diálogo Administrar suscripciones de Microsoft Azure, haga clic en la pestaña Certificados y, luego, en Importar. Siga las instrucciones para descargar y luego importar un archivo de suscripción (también conocido como archivo .publishsettings ) para su cuenta de Azure.
Nota
Si descarga un archivo de suscripción, guárdelo en una carpeta ajena a los directorios de código fuente (por ejemplo, en la carpeta Descargas) y elimínelo una vez que finalice la importación. Si un usuario malintencionado obtuviera acceso al archivo de suscripción, podría editar, crear y eliminar servicios de Azure.
Para más información sobre cómo conectarse a recursos de Azure desde Visual Studio, consulte Asignación de roles de Azure mediante Azure Portal.
En el Explorador de servidores, expanda Azure y, a continuación, App Service.
Expanda el grupo de recursos que incluye la aplicación que creó en Creación de una aplicación web de ASP.NET Framework en Azure y luego haga clic con el botón derecho en el nodo de la aplicación y haga clic en Ver configuración.
Aparecerá la pestaña Aplicación web de Azure y podrá ver las tareas de administración y configuración de aplicaciones disponibles en Visual Studio.
En este tutorial, usará los menús desplegables de registro y seguimiento. También utilizará la depuración remota, pero va a utilizar un método distinto para habilitarla.
Para obtener información sobre los cuadros Configuración de la aplicación y Cadenas de conexión de esta ventana, vea Azure App Service: How Application Strings and Connection Strings Work (Funcionamiento de las cadenas de aplicación y de las cadenas de conexión).
Si desea realizar una tarea de administración de aplicaciones que no se pueda hacer en esta ventana, haga clic en Abrir en Portal de administración para abrir una ventana del explorador con Azure Portal.
Acceso a archivos de aplicaciones en el Explorador de servidores
Normalmente implementa un sitio con la marca customErrors
en el archivo Web.config establecida en On
o en RemoteOnly
, lo que significa que no recibirá un práctico mensaje de error cuando algo se realice de manera incorrecta. Para muchos errores, todo lo que verá será una página como alguna de las siguientes:
Error del servidor en la aplicación '/':
Se produjo un error:
El sitio web no puede mostrar la página
Con frecuencia, la manera más fácil de encontrar la causa de un error es habilitar los mensajes detallados de error, una acción que se explica en la primera de las capturas de pantalla anteriores. Eso requiere un cambio en el archivo Web.config implementado. Puede editar el archivo Web.config en el proyecto y volver a implementar el proyecto, o bien crear una transformación de Web.config
e implementar una compilación de depuración, pero hay una forma más rápida: en el Explorador de soluciones puede ver y editar archivos en la aplicación remota utilizando directamente la característica de vista remota.
En el Explorador de servidores, expanda Azure, expanda App Service, expanda el grupo de recursos en el que se encuentra la aplicación y después expanda el nodo de la aplicación.
Puede ver los nodos que le proporcionan acceso a los archivos de registro y de contenido de la aplicación.
Expanda el nodo Archivos y haga doble clic en el archivo Web.config .
Visual Studio abre el archivo Web.config desde la aplicación remota y muestra [Remote] junto al nombre de archivo en la barra de título.
Agregue la siguiente línea al elemento
system.web
:<customErrors mode="Off"></customErrors>
Actualice el explorador que actualmente muestra el mensaje de error poco práctico y ahora podrá ver un mensaje detallado del error, tal como muestra el siguiente ejemplo:
(El error que aparece se generó al agregar la línea en rojo a Views\Home\Index.cshtml).
Editar el archivo Web.config es solo un ejemplo de las situaciones en las que la capacidad de leer y editar archivos en la aplicación de App Service facilita la solución de problemas.
Aplicaciones de depuración remota
Si el mensaje de error detallado no proporciona información suficiente y no es posible recrear el error de manera local, otra forma de solucionar problemas es ejecutar remotamente en modo de depuración. Puede definir puntos de interrupción, manipular directamente la memoria, revisar el código e, incluso, cambiar la ruta del código.
La depuración remota no funciona en ediciones Express de Visual Studio.
En esta sección se muestra cómo realizar una depuración remota mediante el proyecto creado en Creación de una aplicación web de ASP.NET Framework en Azure.
Abra el proyecto web que creó en Creación de una aplicación web de ASP.NET Framework en Azure.
Abra Controllers\HomeController.cs.
Elimine el método
About()
e inserte el siguiente código en su lugar.public ActionResult About() { string currentTime = DateTime.Now.ToLongTimeString(); ViewBag.Message = "The current time is " + currentTime; return View(); }
Establezca un punto de interrupción en la línea
ViewBag.Message
.En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y, luego, haga clic en Publicar.
En la lista desplegable Perfil, seleccione el mismo perfil que usó en Creación de una aplicación web de ASP.NET Framework en Azure. A continuación, haga clic en Configuración.
En el cuadro de diálogo Publicar, haga clic en la pestaña Configuración y, a continuación, cambie la Configuración a Depurar y, luego, haga clic en Guardar.
Haga clic en Publicar. Una vez que haya finalizado la implementación y que el explorador abre la dirección URL de Azure de su aplicación, cierre el explorador.
En el Explorador de servidores, haga clic con el botón derecho en la aplicación y luego haga clic en Asociar depurador.
El explorador se abre automáticamente en su página inicial en ejecución en Azure. Es posible que deba esperar unos 20 segundos mientras Azure configura el servidor para la depuración. Esta demora solo se produce la primera vez que ejecuta el modo de depuración en una aplicación en un período de 48 horas. Al iniciar la depuración de nuevo en el mismo período, no hay ningún retraso.
Nota
Si tiene algún problema para iniciar el depurador, intente hacerlo con Cloud Explorer en lugar de usar el Explorador de servidores.
Haga clic en Acerca de en el menú.
Visual Studio se detiene en el punto de interrupción y el código se ejecuta en Azure, no en su equipo local.
Mantenga el puntero sobre la variable
currentTime
para ver el valor de tiempo.La hora que ve es la hora del servidor Azure, que puede estar en una zona horaria distinta a la de su equipo local.
Escriba un valor nuevo para la variable
currentTime
, como "Ahora en ejecución en Azure".Presione F5 para continuar la ejecución.
La página About que se ejecuta en Azure muestra el valor nuevo que escribió en la variable currentTime.
WebJobs de depuración remota
En esta sección se muestra cómo depurar de forma remota mediante el proyecto y la aplicación que creó en Get Started with the Azure WebJobs SDK (Introducción al SDK de Azure WebJobs).
Las características mostradas en esta sección solo están disponibles en Visual Studio 2013 con Update 4 o superior.
La depuración remota solo funciona con WebJobs continuos. Los WebJobs bajo demanda y programados no admiten la depuración.
Abra el proyecto web que creó en Introducción al SDK de Azure WebJobs.
En el proyecto ContosoAdsWebJob, abra Functions.cs.
Establezca un punto de interrupción en la primera instrucción del método
GenerateThumbnail
.En el Explorador de soluciones, haga clic con el botón derecho en el proyecto web (no el proyecto WebJob) y, luego, haga clic en Publicar.
En la lista desplegable Perfil , seleccione el mismo perfil que utilizó en Introducción al SDK de Azure WebJobs.
Haga clic en la pestaña Configuración, cambie la Configuración a Depurar y, luego, haga clic en Publicar.
Visual Studio implementará los proyectos web y de WebJobs, y el explorador se abrirá en la dirección URL de Azure de su aplicación.
En el Explorador de servidores, expanda Azure > App Service > su grupo de recursos > su aplicación > WebJobs > Continuo y después haga clic con el botón derecho en ContosoAdsWebJob.
Haga clic en Adjuntar el depurador.
El explorador se abre automáticamente en su página inicial en ejecución en Azure. Es posible que deba esperar unos 20 segundos mientras Azure configura el servidor para la depuración. Esta demora solo se produce la primera vez que ejecuta el modo de depuración en una aplicación en un período de 48 horas. Al iniciar la depuración de nuevo en el mismo período, no hay ningún retraso.
En el explorador web que se abre en la página principal de Contoso Ads, cree un nuevo anuncio.
Al crear un anuncio, se crea un mensaje de la cola, que WebJob recogerá y procesará. Cuando el SDK de WebJobs llama a la función para procesar el mensaje de la cola, el código alcanza el punto de interrupción.
Cuando el depurador se interrumpe en el punto de interrupción, puede examinar y cambiar los valores de las variables mientras está ejecutando el programa en la nube. En la siguiente ilustración, el depurador muestra el contenido del objeto blobInfo que se pasó al método
GenerateThumbnail
.Presione F5 para continuar la ejecución.
El método
GenerateThumbnail
finaliza la creación de la miniatura.En el explorador, actualice la página de índice y vea la miniatura.
En Visual Studio, presione MAYÚS+F5 para detener la depuración.
En el Explorador de servidores, haga clic con el botón derecho en el nodo ContosoAdsWebJob y, luego, haga clic en Ver panel.
Inicie sesión con sus credenciales de Azure y, a continuación, haga clic en el nombre de WebJob para ir a la página de su WebJob.
El panel muestra la función
GenerateThumbnail
ejecutada recientemente.(La próxima vez que haga clic en Ver panel, no tendrá que iniciar sesión y el explorador irá directamente a la página de su WebJob).
Haga clic en el nombre de función para ver detalles acerca de la ejecución de la función.
Si la función escribió registros, puede hacer clic en ToggleOutput para verlos.
Notas acerca de la depuración remota
No se recomienda ejecutar el modo de depuración en producción. Si la aplicación de producción no está escalada horizontalmente a varias instancias de servidor, la depuración impide que el servidor web responda a otras solicitudes. Si tiene varias instancias de servidor web, cuando se asocie al depurador recibirá una instancia aleatoria y no tendrá forma de asegurarse de que las solicitudes del explorador siguientes se dirijan a la misma instancia. Además, normalmente no implementará una compilación de depuración en producción, y las optimizaciones de compilador para compilaciones de versión podrían hacer imposible mostrar lo que ocurre línea a línea en su código fuente. Para solucionar problemas de producción, su mejor recurso son los registros de servidor web y de seguimiento de la aplicación.
Evite detenciones prolongadas en los puntos de interrupción durante la depuración remota. Azure considera un proceso detenido durante más de unos minutos como un proceso sin respuesta y lo apaga.
Mientras realiza la depuración, el servidor envía datos a Visual Studio, lo que podría afectar a los cargos de ancho de banda. Para obtener información acerca de las tarifas de ancho de banda, consulte Precios de Azure.
Asegúrese de que el atributo
debug
del elementocompilation
en el archivo Web.config esté establecido en true. Este es el valor predeterminado cuando publica una configuración de compilación de depuración.<system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web>
Si encuentra que el depurador no entra en el código que desea depurar, es posible que deba cambiar la configuración de Solo mi código. Para más información, consulte Specify whether to debug only user code using Just My Code in Visual Studio (Elección de depurar solo código de usuario con Solo mi código en Visual Studio).
Cuando habilita la característica de depuración remota, se inicia un temporizador en el servidor y 48 horas después la característica se desactiva automáticamente. Este límite de 48 horas es por motivos de seguridad y rendimiento. Puede activar fácilmente la característica las veces que lo desee. Recomendamos dejarla deshabilitada cuando no esté realizando activamente una depuración.
Puede asociar manualmente el depurador a cualquier proceso, no solo al proceso de la aplicación (w3wp.exe). Para obtener más información acerca de cómo utilizar el modo de depuración en Visual Studio, consulte Depuración en Visual Studio.
Información general de registros de diagnóstico
Una aplicación ASP.NET que se ejecuta en una aplicación de App Service puede crear las siguientes clases de registros:
- Registros de seguimiento de aplicación
La aplicación crea estos registros mediante la llamada a métodos de la clase System.Diagnostics.Trace . - Registros de servidor web
El servidor web crea una entrada de registro para cada solicitud HTTP a la aplicación. - Registros de mensaje de error detallados
El servidor web crea una página HTML con algo de información adicional para solicitudes HTTP con error (las solicitudes que generan el código de error 400 o superior). - Registros de seguimiento de solicitudes con error
El servidor web crea un archivo XML con información de seguimiento detallada para solicitudes HTTP con error. El servidor web también proporciona un archivo XSL para dar formato al XML en un explorador.
El registro afecta el rendimiento de la aplicación, por lo que Azure le ofrece la posibilidad de habilitar o deshabilitar cada tipo de registro según sea necesario. En el caso de registros de aplicaciones, puede especificar que solo se escriban los registros por encima de un determinado nivel de gravedad. Cuando crea una aplicación, todos los registros están deshabilitados de manera predeterminada.
Los registros se escriben en archivos en una carpeta LogFiles en el sistema de archivos del sitio y son accesibles a través de FTP. Los registros de servidor web y registros de aplicaciones también se pueden escribir en una cuenta de Azure Storage. Puede conservar un volumen mayor de registros en una cuenta de almacenamiento de lo que es posible en el sistema de archivos. Cuando utiliza el sistema de archivos, tiene un límite máximo de 100 megabytes de registros. (Los registros del sistema de archivos solo son para la retención a corto plazo. Azure elimina los archivos de registro antiguos para dar espacio a otros nuevos una vez alcanzado el límite.)
Creación y visualización de registros de seguimiento de aplicación
En esta sección, realizará las siguientes tareas:
- Agregue instrucciones de seguimiento para el proyecto web que creó en Creación de una aplicación web de ASP.NET Framework en Azure.
- Ver los registros cuando ejecute localmente el proyecto.
- Ver los registros a medida que los genera la aplicación que se ejecuta en Azure.
Para obtener información acerca de cómo crear registros de aplicaciones en WebJobs, consulte Trabajo con el almacenamiento de cola de Azure mediante el SDK de WebJobs - Cómo escribir registros. Las instrucciones siguientes para ver los registros y controlar cómo se almacenan en Azure se aplican también a los registros de aplicación creados por WebJobs.
Adición de instrucciones de seguimiento a la aplicación
Abra Controllers\HomeController.cs y reemplace los métodos
Index
,About
yContact
por el siguiente código para agregar instruccionesTrace
y una instrucciónusing
paraSystem.Diagnostics
:public ActionResult Index() { Trace.WriteLine("Entering Index method"); ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application."; Trace.TraceInformation("Displaying the Index page at " + DateTime.Now.ToLongTimeString()); Trace.WriteLine("Leaving Index method"); return View(); } public ActionResult About() { Trace.WriteLine("Entering About method"); ViewBag.Message = "Your app description page."; Trace.TraceWarning("Transient error on the About page at " + DateTime.Now.ToShortTimeString()); Trace.WriteLine("Leaving About method"); return View(); } public ActionResult Contact() { Trace.WriteLine("Entering Contact method"); ViewBag.Message = "Your contact page."; Trace.TraceError("Fatal error on the Contact page at " + DateTime.Now.ToLongTimeString()); Trace.WriteLine("Leaving Contact method"); return View(); }
Agregue una instrucción
using System.Diagnostics;
a la parte superior del archivo.
Visualización del resultado de seguimiento localmente
Presione F5 para ejecutar la aplicación en modo de depuración.
La escucha de seguimiento predeterminada escribe todo el resultado del seguimiento en la ventana Resultados , además del resultado de la depuración. La siguiente ilustración muestra el resultado de las instrucciones de seguimiento que agregó al método
Index
.Los pasos siguientes muestran cómo ver el resultado del seguimiento en una página web, sin compilar en modo de depuración.
Abra el archivo Web.config de la aplicación (el que está ubicado en la carpeta del proyecto) y agregue un elemento
<system.diagnostics>
al final del archivo, justo antes del elemento</configuration>
de cierre:<system.diagnostics> <trace> <listeners> <add name="WebPageTraceListener" type="System.Web.WebPageTraceListener, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </listeners> </trace> </system.diagnostics>
WebPageTraceListener
le permite ver los resultados de seguimiento si navega a /trace.axd
.
Agregue un elemento de seguimiento bajo
<system.web>
en el archivo Web.config, como en el siguiente ejemplo:<trace enabled="true" writeToDiagnosticsTrace="true" mostRecent="true" pageOutput="false" />
Presione CTRL+F5 para ejecutar la aplicación.
En la barra de direcciones de la ventana del explorador, agregue trace.axd a la dirección URL y, luego, presione ENTRAR (la dirección URL es similar a
http://localhost:53370/trace.axd
).En la página Seguimiento de la aplicación, haga clic en Ver detalles en la primera línea (no en la línea BrowserLink).
Aparece la página Detalles de la solicitud y en la sección Información de seguimiento, podrá ver el resultado de las instrucciones de seguimiento que agregó al método
Index
.De manera predeterminada,
trace.axd
solo está disponible localmente. Si desea que esté disponible desde una aplicación remota, puede agregarlocalOnly="false"
al elementotrace
en el archivo Web.config, tal como aparece en el siguiente ejemplo:<trace enabled="true" writeToDiagnosticsTrace="true" localOnly="false" mostRecent="true" pageOutput="false" />
Pero no se recomienda habilitar
trace.axd
en una aplicación de producción por motivos de seguridad. En las siguientes secciones, verá una forma más sencilla de leer registros de seguimiento en una aplicación de App Service.
Visualización del resultado de seguimiento en Azure
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto web y, a continuación, en Publicar.
En el cuadro de diálogo Publicación web, haga clic en Publicar.
Después de que Visual Studio publica su actualización, se abre una ventana del explorador en su página principal (suponiendo que no desactivó Dirección URL de destino en la pestaña Conexión).
En el Explorador de servidores, haga clic con el botón derecho en la aplicación y seleccione Ver registros de streaming.
La ventana Resultados muestra que está conectado al servicio de streaming de registros y agrega una línea de notificación cada minuto que pasa sin un registro para mostrar.
En la ventana del explorador que muestra la página principal de su aplicación, haga clic en Contact.
En unos pocos segundos, el resultado del seguimiento en el nivel de error que agregó al método
Contact
aparecerá en la ventana Resultados.Visual Studio muestra solo seguimientos en el nivel de errores porque es el valor predeterminado cuando habilita el servicio de supervisión de registros. Cuando crea una aplicación de App Service, todos los registros están deshabilitados de manera predeterminada, tal como vio cuando abrió anteriormente la página de configuración:
Sin embargo, cuando selecciona Ver registros de streaming, Visual Studio cambia automáticamente Registro de la aplicación (sistema de archivos) a Error, lo que significa que los registros de errores se notifican. Para ver todos los registros de seguimiento, puede cambiar esta configuración a Detallado. Cuando selecciona un nivel de gravedad inferior al error, también se notifican todos los registros para niveles de gravedad más altos. Por lo tanto, cuando selecciona detallado, también verá registros de errores, advertencias e información.
En el Explorador de servidores, haga clic con el botón derecho en la aplicación y después haga clic en Ver configuración como hizo antes.
Cambie Registro de la aplicación (sistema de archivos) a Detallado y haga clic en Guardar.
En la ventana del explorador que ahora muestra su página Contacto, haga clic en Inicio, en Información y, a continuación, haga clic en Contacto.
En unos pocos segundos, la ventana Resultados mostrará todos los resultados del seguimiento.
En esta sección, aprendió a habilitar y deshabilitar el registro mediante la configuración de la aplicación. También puede habilitar y deshabilitar escuchas de seguimiento si modifica el archivo Web.config. Pero modificar el archivo Web.config hace que el dominio de la aplicación se recicle, mientras que habilitar el registro a través de la aplicación no provoca eso. Si el problema tarda mucho en reproducirse, o bien es intermitente, reciclar el dominio de la aplicación podría "arreglarlo" y forzarle a esperar hasta que vuelva a ocurrir. Permitir el diagnóstico en Azure le permite comenzar inmediatamente a capturar información sobre el error sin reciclar el dominio de aplicación.
Características de la ventana de salida
La pestaña Registros de Microsoft Azure de la ventana Resultados tiene varios botones y un cuadro de texto:
Estos elementos realizan las siguientes funciones:
- Limpiar la ventana Resultado .
- Habilitar o deshabilitar el ajuste automático de línea.
- Iniciar o detener la supervisión de los registros.
- Especificar los registros para supervisar.
- Descargar registros.
- Filtrar los registros según una cadena de búsqueda o una expresión regular.
- Cierre la ventana Resultados .
Si especificó una cadena de búsqueda o una expresión regular, Visual Studio filtra la información de registro en el cliente. Esto significa que puede especificar los criterios después de que aparezcan los registros en la ventana Resultados y que puede cambiar esos criterios de filtrado sin tener que volver a generar los registros.
Visualización de registros de servidor web
Los registros de servidor web registran toda la actividad HTTP para la aplicación. Para verlos en la ventana Resultados, debe habilitarlos en la aplicación e indicarle a Visual Studio que desea supervisarlos.
En la pestaña Configuración de aplicaciones web de Azure que abrió desde el Explorador de servidores, cambie el registro de servidor web a Activado y haga clic en Guardar.
En la ventana Resultados, haga clic en el botón Especificar los registros de Microsoft Azure para supervisar.
En el cuadro de diálogo Opciones de registro de Microsoft Azure, seleccione Registros de servidor web y haga clic en Aceptar.
En la ventana del explorador que muestra la aplicación, haga clic en Inicio, en Información y después en Contacto.
Los registros de aplicación generalmente aparecen primero y luego aparecen los registros de servidor web. Es posible que deba esperar un poco hasta que aparezcan.
De manera predeterminada, cuando habilita por primera vez los registros de servidor web mediante el uso de Visual Studio, Azure escribe los registros en el sistema de archivos. De manera alternativa, puede utilizar el Portal de Azure para especificar que los registros de servidor web se deben escribir en un contenedor de blobs en una cuenta de almacenamiento.
Si utiliza el portal para habilitar el registro de servidor web para una cuenta de almacenamiento de Azure y luego deshabilitar el registro en Visual Studio, cuando vuelva a habilitar el registro en Visual Studio, se restaurará la configuración de su cuenta de almacenamiento.
Visualización de registros de mensajes de error detallados
Los registros de error detallados proporcionan información adicional acerca de las solicitudes HTTP que generaron códigos de respuesta con error (400 o superiores). Para verlos en la ventana Resultados, debe habilitarlos en la aplicación e indicarle a Visual Studio que desea supervisarlos.
En la pestaña Configuración de aplicaciones web de Azure que abrió desde el Explorador de servidores, cambie Mensajes de error detallados a Activado y haga clic en Guardar.
En la ventana Resultados, haga clic en el botón Especificar los registros de Microsoft Azure para supervisar.
En el cuadro de diálogo Opciones de registro de Microsoft Azure, haga clic en Todos los registros y, a continuación, en Aceptar.
En la barra de direcciones de la ventana del explorador, agregue un carácter adicional a la dirección URL para generar un error 404 (por ejemplo,
http://localhost:53370/Home/Contactx
) y presione Entrar.Después de varios segundos, el registro detallado del error aparecerá en la ventana Resultados de Visual Studio.
Presione Ctrl y haga clic en el vínculo para ver el resultado del registro formateado en un explorador:
Descarga de registros del sistema de archivos
Todos los registros que se pueden supervisar en la ventana Resultados también pueden descargarse como un archivo .zip
En la ventana Resultados, haga clic en Descargar registros de streaming.
El Explorador de archivos abrirá la carpeta Descargas con el archivo descargado seleccionado.
Extraiga el archivo .zip y verá la siguiente estructura de carpetas:
Los registros de seguimiento de aplicación están en archivos .txt en la carpeta LogFiles\Application.
Los registros de servidor web están en archivos .log en la carpeta LogFiles\http\RawLogs. Puede utilizar una herramienta como Analizador del registro para ver y manipular estos archivos.
Los registros de mensajes de error detallados están en los archivos .html de la carpeta LogFiles\DetailedErrors.
(La carpeta implementaciones es para los archivos creados por la publicación del control de código fuente; no tiene nada relacionado con la publicación de Visual Studio. La carpeta Git es para los seguimientos relacionados con la publicación del control de código fuente y el servicio de streaming de archivos de registro.)
Visualización de registros de seguimiento de solicitudes con error
Los registros de seguimiento de solicitudes con error son útiles cuando necesita comprender los detalles de cómo IIS maneja una solicitud HTTP, en situaciones tales como problemas de autenticación o reconfiguración de URL.
Las aplicaciones de App Service usan la misma funcionalidad de seguimiento de solicitudes con error que ha estado disponible con IIS 7.0 y posterior. Sin embargo, no tiene acceso a la configuración de IIS que determina los errores que se registran. Cuando habilita el seguimiento de solicitudes con error, se capturan todos los errores.
Puede habilitar el seguimiento de solicitudes con error a través de Visual Studio, pero no puede verlas ahí. Estos registros son archivos XML. El servicio de registro de streaming solo supervisa archivos que se pueden leer en modo de texto sin formato: .txt, .html y .log.
Puede ver los registros de seguimiento de solicitudes en un explorador directamente vía FTP o de manera local después de utilizar una herramienta FTP para descargarlos en el equipo local. En esta sección, los verá directamente en un explorador.
En la pestaña Configuración de la ventana Aplicación web de Azure que abrió desde el Explorador de servidores, cambie Seguimiento de solicitudes con error a Activado y haga clic en Guardar.
En la barra de direcciones de la ventana del explorador que muestra la aplicación, agregue un carácter adicional a la dirección URL y haga clic en Entrar para generar un error 404.
Esto hará que se cree un registro de seguimiento de solicitud con error; los pasos siguientes muestran cómo ver o descargar el registro.
En Visual Studio, en la pestaña Configuración de la ventana Aplicación web de Azure, haga clic en Abrir en el Portal de administración.
En la hoja Azure PortalConfiguración de la aplicación, haga clic en Credenciales de implementación y luego especifique un nuevo nombre de usuario y contraseña.
Nota
Cuando inicie sesión, debe utilizar el nombre de usuario completo, con el nombre de la aplicación como prefijo. Por ejemplo, si escribe "myid" como nombre de usuario y el sitio es "myexample", inicie sesión como "myexample\myid".
En una ventana nueva del explorador, vaya a la dirección URL que aparece en Nombre de host de FTP o Nombre de host de FTPS en la página Información general de la aplicación.
Inicie sesión con las credenciales de FTP que creó anteriormente (el nombre de usuario debe incluir como prefijo el nombre de la aplicación).
El explorador muestra la carpeta raíz de la aplicación.
Abra la carpeta LogFiles .
Abra la carpeta llamada W3SVC más un valor numérico.
La carpeta contiene archivos XML de todo error que se haya registrado después de haber habilitado el seguimiento de solicitudes con error, además de un archivo XSL que un explorador puede utilizar para dar formato al XML.
Haga clic en el archivo XML de la solicitud con error para la que desea ver información de seguimiento.
La siguiente ilustración muestra parte de la información de seguimiento de un error de muestra.
Pasos siguientes
Ha visto cómo Visual Studio facilita la visualización de registros creados por una aplicación de App Service. Las secciones siguientes proporcionan vínculos a más recursos sobre temas relacionados:
- Solución de problemas de App Service
- Depuración en Visual Studio
- Depuración remota en Azure
- Seguimiento en aplicaciones de ASP.NET
- Análisis de registros de servidor web
- Análisis de registros de seguimiento de solicitudes con error
- Depuración de Cloud Services
Solución de problemas de App Service
Para obtener más información sobre cómo solucionar problemas de aplicaciones en Azure App Service, vea los siguientes recursos:
- Control de Supervisión de aplicaciones en Azure App Service
- Investigating Memory Leaks in Azure App Service with Visual Studio 2013 (Investigación de fugas de memoria en Azure App Service con Visual Studio 2013). Artículo del blog ALM de Microsoft sobre las características de Visual Studio para el análisis de problemas de memoria administrada.
- Azure App Service online tools you should know about (Herramientas en línea de Azure App Service que debe conocer). Publicación en el blog de Amit Apple.
Si desea obtener ayuda para una pregunta específica sobre la solución de problemas, comience una conversación en alguno de los siguientes foros:
Depuración en Visual Studio
Para más información acerca del uso del modo de depuración en Visual Studio, consulte Depuración en Visual Studio y Sugerencias de depuración de Visual Studio 2010.
Depuración remota en Azure
Para obtener más información sobre la depuración remota para aplicaciones de App Service y WebJobs, vea los siguientes recursos:
- Introduction to Remote Debugging Azure App Service (Introducción a la depuración remota de Azure App Service).
- Introduction to Remote Debugging Azure App Service part 2 - Inside Remote debugging (Introducción a la depuración remota en Azure App Service, Parte 2: detalles de la depuración remota)
- Introduction to Remote Debugging on Azure App Service part 3 - Multi-Instance environment and GIT (Introducción a la depuración remota en Azure App Service, Parte 3: entorno de varias instancias y GIT)
- Depuración de WebJobs
Si su aplicación utiliza una API web de Azure o el back-end de Mobile Services y necesita depurarlo, vea Debugging .NET Backend in Visual Studio (Depuración de back-end de .NET en Visual Studio).
Seguimiento en aplicaciones de ASP.NET
No hay introducciones rigurosas ni actualizadas al seguimiento de ASP.NET disponibles en Internet. Lo mejor que puede hacer es comenzar con materiales de introducción antiguos escritos para Web Forms, porque MVC todavía no existía, y complementarlos con las publicaciones más recientes en blogs que se centran en temas específicos. Algunos buenos sitios para comenzar son los siguientes recursos:
Supervisión y telemetría (crear aplicaciones en la nube para el mundo real con Azure).
Capítulo de un libro electrónico con recomendaciones para realizar seguimiento en aplicaciones de la nube de Azure.Seguimiento de ASP.NET
Un recurso antiguo, pero siempre útil, con una introducción básica al tema.Agentes de escucha de seguimiento
Brinda información acerca de los agentes de escucha de seguimiento, pero no menciona WebPageTraceListener.Tutorial: Integración del seguimiento de ASP.NET con el seguimiento de System.Diagnostics
Este artículo también es antiguo, pero incluye cierta información adicional que el artículo de introducción no incluye.Seguimiento en vistas Razor de ASP.NET MVC
Además del seguimiento en vistas de Razor, la publicación también explica cómo crear un filtro de error para registrar todas las excepciones no manejadas en una aplicación MVC. Si desea obtener información sobre cómo registrar todas las excepciones no controladas en una aplicación de Web Forms, consulte el ejemplo Global.asax en Ejemplo completo de controladores de errores en MSDN . Ya sea en MVC o en Web Forms, si desea registrar ciertas excepciones, pero permitir que la gestión del marco predeterminado las afecte, puede volver a intentarlo como en el siguiente ejemplo:try { // Your code that might cause an exception to be thrown. } catch (Exception ex) { Trace.TraceError("Exception: " + ex.ToString()); throw; }
Registro de seguimiento de diagnóstico de streaming desde la línea de comandos de Azure (con Glimpse)
Uso de la línea de comandos para hacer lo que muestra este tutorial en Visual Studio. Glimpse es una herramienta de depuración de aplicaciones ASP.NET.Uso de diagnósticos y registro de Web Apps - con David Ebbo y Registros de streaming desde Web Apps - con David Ebbo
Vídeos de Scott Hanselman y David Ebbo.
Para el registro de errores, una alternativa a escribir su propio código de seguimiento es utilizar un marco de registro de código abierto, como ELMAH. Para obtener más información, consulte Publicaciones de blog de Scott Hanselman sobre ELMAH.
Además, no es necesario realizar un seguimiento de ASP.NET o de System.Diagnostics
para obtener registros de streaming de Azure. El servicio de registros de streaming de la aplicación de App Service transmite todo archivo .txt, .html o .log que encuentra en la carpeta LogFiles. Por tanto, podría crear su propio sistema de registro que escriba en el sistema de archivos de la aplicación y su archivo se transmitirá y descargará automáticamente. Todo lo que tiene que hacer es escribir código de aplicación que cree archivos en la carpeta d:\home\logfiles.
Análisis de registros de servidor web
Para obtener más información acerca del análisis de registros de servidor web, consulte los siguientes recursos:
- LogParser
Una herramienta para visualizar datos en registros de servidor web (archivos .log ). - Solución de problemas de rendimiento de IIS o errores de aplicación al usar LogParser
Una introducción a la herramienta de analizador del registro que puede utilizar para analizar registros de servidor web. - Publicaciones en el blog de Robert McMurray sobre el uso de LogParser
- El código de estado HTTP en IIS 7.0, IIS 7.5 y IIS 8.0
Análisis de registros de seguimiento de solicitudes con error
El sitio web de Microsoft TechNet incluye una sección llamada Uso de seguimiento de solicitudes erróneas, que puede ser muy práctica para comprender cómo utilizar estos registros. Pero esta documentación se centra en la configuración del seguimiento de solicitudes con error en IIS, algo que no puede hacer en Azure App Service.