Solución de problemas de una aplicación en Azure App Service con Visual Studio

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 .

  1. 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.

  2. En el Explorador de servidores, expanda Azure y, a continuación, App Service.

  3. 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.

    View Settings in Server Explorer

    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.

    Azure Web App window

    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 '/':

Screenshot showing a Server Error in '/' Application error in a web browser.

Se produjo un error:

Screenshot showing an example of a generic error occurring in a web browser.

El sitio web no puede mostrar la página

Screenshot showing a message that reads **The website cannot display the page error in a web browser**.

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.

  1. 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.

  2. Expanda el nodo Archivos y haga doble clic en el archivo Web.config .

    Open 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.

  3. Agregue la siguiente línea al elemento system.web :

    <customErrors mode="Off"></customErrors>

    Edit Web.config

  4. 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:

    Detailed error message

    (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.

  1. Abra el proyecto web que creó en Creación de una aplicación web de ASP.NET Framework en Azure.

  2. Abra Controllers\HomeController.cs.

  3. 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();
    }
    
  4. Establezca un punto de interrupción en la línea ViewBag.Message.

  5. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y, luego, haga clic en Publicar.

  6. 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.

  7. 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.

    Publish in debug mode

  8. 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.

  9. En el Explorador de servidores, haga clic con el botón derecho en la aplicación y luego haga clic en Asociar depurador.

    Screenshot of the Server Explorer window showing an app selected and then clicking Attach Debugger.

    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.

  10. 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.

  11. Mantenga el puntero sobre la variable currentTime para ver el valor de tiempo.

    View variable in debug mode running in Azure

    La hora que ve es la hora del servidor Azure, que puede estar en una zona horaria distinta a la de su equipo local.

  12. Escriba un valor nuevo para la variable currentTime , como "Ahora en ejecución en Azure".

  13. 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.

    About page with new value

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.

  1. Abra el proyecto web que creó en Introducción al SDK de Azure WebJobs.

  2. En el proyecto ContosoAdsWebJob, abra Functions.cs.

  3. Establezca un punto de interrupción en la primera instrucción del método GenerateThumbnail.

    Set breakpoint

  4. 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.

  5. En la lista desplegable Perfil , seleccione el mismo perfil que utilizó en Introducción al SDK de Azure WebJobs.

  6. 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.

  7. 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.

  8. Haga clic en Adjuntar el depurador.

    Screenshot of Server Explorer showing ContosoAdsWebJob selected in the drop-down menu and Attach Debugger selected.

    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.

  9. 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.

  10. 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.

    blobInfo object in debugger

  11. Presione F5 para continuar la ejecución.

    El método GenerateThumbnail finaliza la creación de la miniatura.

  12. En el explorador, actualice la página de índice y vea la miniatura.

  13. En Visual Studio, presione MAYÚS+F5 para detener la depuración.

  14. En el Explorador de servidores, haga clic con el botón derecho en el nodo ContosoAdsWebJob y, luego, haga clic en Ver panel.

  15. 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.

    Click ContosoAdsWebJob

    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).

  16. Haga clic en el nombre de función para ver detalles acerca de la ejecución de la función.

    Function details

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 elemento compilation 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:

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

  1. Abra Controllers\HomeController.cs y reemplace los métodos Index, About y Contact por el siguiente código para agregar instrucciones Trace y una instrucción using para System.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();
    }        
    
  2. Agregue una instrucción using System.Diagnostics; a la parte superior del archivo.

Visualización del resultado de seguimiento localmente

  1. 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 .

    Tracing in Debug window

    Los pasos siguientes muestran cómo ver el resultado del seguimiento en una página web, sin compilar en modo de depuración.

  2. 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.

  1. 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" />
    
  2. Presione CTRL+F5 para ejecutar la aplicación.

  3. 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).

  4. 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).

    Screenshot of the Application Trace page in a web browser showing View Details selected on the first line.

    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.

    Screenshot of the Request Details page in a web browser showing a message highlighted in the Trace Information section.

    De manera predeterminada, trace.axd solo está disponible localmente. Si desea que esté disponible desde una aplicación remota, puede agregar localOnly="false" al elemento trace 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

  1. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto web y, a continuación, en Publicar.

  2. 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).

  3. En el Explorador de servidores, haga clic con el botón derecho en la aplicación y seleccione Ver registros de streaming.

    Screenshot of Server Explorer after right-clicking your app, with View Streaming Logs selected in a new window.

    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.

    Screenshot of the Output window showing an example of a connection to a log-streaming service with notification lines.

  4. 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.

    Error trace in Output window

    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:

    Application Logging off

    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.

  5. 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.

  6. Cambie Registro de la aplicación (sistema de archivos) a Detallado y haga clic en Guardar.

    Setting trace level to Verbose

  7. 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.

    Verbose trace output

    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:

Screenshot showing the buttons and text box of the Microsoft Azure Logs tab in the Output window.

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.

  1. 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.

    Enable web server logging

  2. En la ventana Resultados, haga clic en el botón Especificar los registros de Microsoft Azure para supervisar.

    Specify which Azure logs to monitor

  3. En el cuadro de diálogo Opciones de registro de Microsoft Azure, seleccione Registros de servidor web y haga clic en Aceptar.

    Monitor web server logs

  4. 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.

    Web server logs in Output window

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.

  1. 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.

    Enable detailed error messages

  2. En la ventana Resultados, haga clic en el botón Especificar los registros de Microsoft Azure para supervisar.

  3. En el cuadro de diálogo Opciones de registro de Microsoft Azure, haga clic en Todos los registros y, a continuación, en Aceptar.

    Monitor all logs

  4. 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.

    Detailed error log - Output window

    Presione Ctrl y haga clic en el vínculo para ver el resultado del registro formateado en un explorador:

    Detailed error log - browser window

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

  1. En la ventana Resultados, haga clic en Descargar registros de streaming.

    Screenshot of the Output window showing the Download Streaming Logs button highlighted.

    El Explorador de archivos abrirá la carpeta Descargas con el archivo descargado seleccionado.

    Screenshot of the Downloads folder in File Explorer with a downloaded file selected.

  2. Extraiga el archivo .zip y verá la siguiente estructura de carpetas:

    Screenshot of the .zip file folder structure after the file has been extracted.

    • 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.

  1. 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.

    Enable failed request tracing

  2. 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.

  3. 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.

  4. 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.

    New FTP user name and password

    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".

  5. 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.

  6. 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.

  7. Abra la carpeta LogFiles .

    Open LogFiles folder

  8. Abra la carpeta llamada W3SVC más un valor numérico.

    Open W3SVC folder

    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.

    W3SVC folder

  9. 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.

    Failed request tracing in browser

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:

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:

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:

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:

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.