Exportar (0) Imprimir
Expandir todo

Depurar un servicio en la nube o una máquina virtual en Visual Studio

Actualizado: agosto de 2014

Visual Studio proporciona distintas opciones para la depuración de servicios en la nube y máquinas virtuales de Azure.

Este tema contiene las siguientes secciones.

Puede ahorrar tiempo y dinero si utiliza el emulador de proceso de Azure para depurar su servicio en la nube en un equipo local. La depuración de un servicio localmente antes de su implementación puede mejorar la fiabilidad y el rendimiento sin pagar por tiempo de proceso. No obstante, pueden producirse algunos errores solo al ejecutar un servicio en la nube en el propio Azure. Puede depurar estos errores si habilita la depuración remota al publicar el servicio y, a continuación, adjuntar el depurador a una instancia de rol.

El emulador simula el servicio Cálculo de Azure y se ejecuta en el entorno local para que pueda probar y depurar el servicio en la nube antes de implementarlo. El emulador administra el ciclo de vida de sus instancias de rol y proporciona acceso a recursos simulados, tales como el almacenamiento local. Al depurar o ejecutar el servicio desde Visual Studio, este entorno inicia automáticamente el emulador como una aplicación de fondo y, a continuación, implementa el servicio en el emulador. Puede utilizar el emulador para ver su servicio cuando se ejecuta en el entorno local. Puede ejecutar la versión completa o la versión Express del emulador. (A partir de Azure 2.3, la versión Express del emulador es la opción predeterminada). Vea Utilizar Emulator Express para ejecutar y depurar un servicio en la nube localmente.

  1. En la barra de menús del emulador de proceso de Azure, haga clic en Depurar>Depurar.

  2. Para visualizar la interfaz de usuario del emulador de proceso abra el menú contextual del icono de Azure en el área de notificaciones y, a continuación, haga clic en Mostrar la interfaz de usuario del emulador de proceso.

    El panel izquierdo de la interfaz de usuario muestra los servicios que están implementados actualmente en el emulador de proceso y las instancias de rol que está ejecutando cada servicio. Puede seleccionar el servicio o los roles para mostrar información sobre el ciclo de vida, el registro y el diagnóstico en el panel derecho. Si coloca el foco en el margen superior de una ventana incluida, se expande para rellenar el recuadro derecho.

  3. Para recorrer la aplicación haga clic en los comandos del menú Depurar y establezca los puntos de interrupción en el código.

    Cuando recorre la aplicación en el depurador, los recuadros se actualizan con el estado actual de la aplicación. Al detener la depuración, se elimina la implementación de la aplicación.

    Si su aplicación incluye un rol web y ha establecido la propiedad Acción de inicio para iniciar el explorador web, Visual Studio inicia su aplicación web en el explorador.

    Si cambia el número de instancias de un rol en la configuración del servicio, debe detener su servicio en la nube y, a continuación, reiniciar la depuración para que pueda depurar estas nuevas instancias del rol.

    noteNota
    Cuando se deja de ejecutar o depurar el servicio, no se detienen el emulador de proceso y el emulador de almacenamiento locales. Debe detenerlas explícitamente en el área de notificación.

Para depurar un servicio en la nube desde un equipo remoto, debe habilitar esta funcionalidad de forma explícita cuando implemente su servicio en la nube para que los servicios requeridos (como msvsmon.exe) se instalen en las máquinas virtuales que ejecutan sus instancias de rol. Si no habilitó la depuración remota al publicar el servicio, deberá volver a publicar el servicio con la depuración remota habilitada.

Si habilita la depuración remota para un servicio en la nube, este no mostrará un rendimiento inferior ni incurrirá en cargos adicionales. No debe usar la depuración remota en un servicio de producción, porque podría perjudicar a los clientes que usan el servicio.

noteNota
Al publicar un servicio en la nube en Visual Studio, puede habilitar IntelliTrace para cualquier rol en ese servicio que tenga como destino .NET Framework 4 o .NET Framework 4.5. Con IntelliTrace, puede examinar eventos que se produjeron en una instancia del rol en el pasado y reproducen el contexto desde ese momento. Vea Depurar con IntelliTrace y Visual Studio un servicio en la nube y Depuración con IntelliTrace.

  1. Abra el menú contextual del proyecto de Azure y haga clic en Publicar.

  2. Seleccione el entorno de ensayo y la configuración de depuración.

    Esto es solo una directriz. Puede optar por ejecutar sus entornos de prueba en un entorno de producción. No obstante, puede perjudicar a los usuarios si habilita la depuración remota en el entorno de producción. Puede seleccionar la configuración Liberar, pero la configuración Depurar simplifica la depuración.

    Elegir la configuración de depuración
  3. Siga los pasos habituales pero seleccione la última casilla de la pestaña Configuración avanzada.

    Configuración de depuración

  1. En el Explorador de servidores, expanda el nodo del servicio en la nube.

  2. Abra el menú contextual del rol o la instancia de rol a la que desea adjuntarlo y, a continuación, haga clic en Asociar depurador.

    Conectar depurador

    Si depura un rol, el depurador de Visual Studio se adjuntará a cada instancia de dicho rol. El depurador se interrumpirá en un punto de interrupción para la primera instancia de rol que ejecute esta línea de código y cumpla las condiciones de dicho punto de interrupción. Si depura una instancia, el depurador solo se adjuntará a dicha instancia y se interrumpirá en un punto de interrupción solamente cuando esa instancia específica ejecute esa línea de código y cumpla las condiciones del punto de interrupción.

  3. Después de que el depurador se adjunte a una instancia, realice la depuración del modo habitual.

    Cuadro de diálogo Seleccionar tipo de código

    El depurador se adjunta automáticamente al proceso de host adecuado para el rol. En función del tipo de rol, el depurador se adjunta a w3wp.exe, WaWorkerHost.exe o WaIISHost.exe. Para comprobar el proceso al que se ha adjuntado el depurador, expanda el nodo de la instancia en el Explorador de servidores. Vea Azure Role Architecture para obtener más información sobre los procesos de Azure.

  4. Para identificar los procesos a los que se ha adjuntado el depurador, abra el cuadro de diálogo Procesos. Para ello, en la barra de menús, seleccione Depurar, Windows, Procesos. (Teclado: Ctrl+Alt+Z)

    Procesos de depuración

    Para separar un proceso específico, abra su menú contextual y, a continuación, haga clic en Desasociar proceso. También puede localizar el nodo de la instancia en el Explorador de servidores, buscar el proceso, abrir su menú contextual y hacer clic en Desasociar proceso.

WarningAdvertencia
Evite detenciones prolongadas en los puntos de interrupción durante la depuración remota. Azure trata un proceso que se detiene durante más de unos minutos como si hubiese dejado de responder y detiene el envío de tráfico a dicha instancia. Si efectúa una detención demasiado prolongada, msvsmon.exe se separará del proceso.

Para separar el depurador de todos los procesos de su instancia o rol, abra el menú contextual del rol o la instancia que está depurando y, a continuación, haga clic en Desasociar depurador.

Para Azure SDK 4.3, la depuración remota presenta las siguientes limitaciones.

  • Con la depuración remota habilitada, no puede publicar un servicio en la nube que presente algún rol con más de 25 instancias.

  • El depurador usa los puertos de 30400 a 30424 y de 31400 a 31424. Si intenta usar alguno de estos puertos, no podrá publicar su servicio y aparecerá uno de los siguientes mensajes de error en el registro de actividad de Azure:

    • Error validating the .cscfg file against the .csdef file. The reserved port range 'range' for endpoint Microsoft.WindowsAzure.Plugins.RemoteDebugger.Connector of role 'role' overlaps with an already defined port or range.

    • Allocation failed. Please retry later, try reducing the VM size or number of role instances, or try deploying to a different region.

Puede depurar programas que se ejecuten en máquinas virtuales de Azure usando el Explorador de servidores en Visual Studio. Si habilita la depuración remota en una máquina virtual de Azure, Azure instalará la extensión de depuración remota en la máquina virtual. A continuación, podrá adjuntarla a procesos en la máquina virtual y realizar la depuración como lo haría normalmente.

  1. En el Explorador de servidores, expanda el nodo Máquinas virtuales y seleccione el nodo de la máquina virtual que desea depurar.

  2. Abra el menú contextual y haga clic en Habilitar depuración.

    Comando de depuración para habilitar máquina virtual

    Cuando se le pida que confirme si desea habilitar la depuración en la máquina virtual, haga clic en .

    Azure instala la extensión de depuración remota en la máquina virtual para habilitar la depuración.

    Registro de actividades de Azure
  3. Cuando la extensión de depuración remota termine de instalarse, abra el menú contextual de la máquina virtual y haga clic en Asociar depurador...

    Conectar comando de depurador

    Azure obtiene una lista de los procesos en la máquina virtual y los muestra en el cuadro de diálogo Asociar al proceso.

  4. En el cuadro de diálogo Asociar al proceso, haga clic en Seleccionar para limitar la lista de resultados de forma que solo se muestren los tipos de código que desea depurar. Puede seleccionar código administrado, código nativo o ambos.

    Cuadro de diálogo Seleccionar tipo de código
  5. Haga clic en los procesos que desea depurar en la máquina virtual y, a continuación, haga clic en Adjuntar. Por ejemplo, puede seleccionar el proceso w3wp.exe si desea depurar una aplicación web en la máquina virtual. Vea Depurar uno o varios procesos en Visual Studio y Arquitectura del rol de Azure para obtener más información.

Antes de publicar el proyecto de Azure, es posible que le resulte útil probarlo en un entorno contenido que sea compatible con los entornos de depuración y pruebas, y en el que pueda instalar programas de pruebas y supervisión. Una manera de hacerlo es depurar su aplicación de forma remota en una máquina virtual.

Los proyectos ASP.NET de Visual Studio ofrecen una opción para crear una práctica máquina virtual que se puede usar para probar aplicaciones. La máquina virtual incluye extremos requeridos habitualmente, como PowerShell, Escritorio remoto y WebDeploy.

  1. En Visual Studio, cree una nueva aplicación web ASP.NET.

  2. En el cuadro de diálogo Nuevo proyecto ASP.NET, en la sección Azure, seleccione Máquina virtual en el cuadro de lista desplegable. Deje la casilla Crear recursos remotos activada. Haga clic en Aceptar para continuar.

    Crear cuadro de diálogo del proyecto web de ASP.NET

    Aparece el cuadro de diálogo Crear máquina virtual en Azure.

    noteNota
    Se le pedirá que inicie sesión en la cuenta de Azure si todavía no lo ha hecho.

  3. Seleccione los distintos valores de configuración de la máquina virtual y, a continuación, haga clic en Aceptar. Vea Máquinas virtuales para obtener más información.

    Cuadro de diálogo Crear máquina virtual en Azure
    noteNota
    El nombre que escriba en Nombre DNS será el nombre de la máquina virtual.

    Azure crea la máquina virtual y, a continuación, aprovisiona y configura los extremos, como Escritorio remoto y Web Deploy.

  4. Cuando la máquina virtual esté completamente configurada, seleccione el nodo de la máquina virtual en el Explorador de servidores.

  5. Abra el menú contextual y haga clic en Habilitar depuración.

    Comando de depuración para habilitar máquina virtual

    Cuando se le pida que confirme si desea habilitar la depuración en la máquina virtual, haga clic en .

    Azure instala la extensión de depuración remota en la máquina virtual para habilitar la depuración.

    Registro de actividades de Azure
  6. Publique su proyecto como se detalla en How to: Deploy a Web Project Using One-Click Publish in Visual Studio. Dado que desea realizar la depuración en la máquina virtual, en la página Configuración del asistente de Publicación web, seleccione Depurar como la configuración. Esto garantiza la disponibilidad de los símbolos de código durante la depuración.

    Configuración de publicación
  7. En File Publish Options, seleccione Remove additional files at destination si el proyecto ya se había implementado anteriormente.

  8. Después de publicar el proyecto, en el menú contextual de la máquina virtual, en el Explorador de servidores, haga clic en Asociar depurador...

    Conectar comando de depurador

    Azure obtiene una lista de los procesos en la máquina virtual y los muestra en el cuadro de diálogo Asociar al proceso.

  9. En el cuadro de diálogo Asociar al proceso, haga clic en Seleccionar para limitar la lista de resultados de forma que solo se muestren los tipos de código que desea depurar. Puede seleccionar código administrado, código nativo o ambos.

    Cuadro de diálogo Seleccionar tipo de código
  10. Haga clic en los procesos que desea depurar en la máquina virtual y, a continuación, haga clic en Adjuntar. Por ejemplo, puede seleccionar el proceso w3wp.exe si desea depurar una aplicación web en la máquina virtual. Vea Depurar uno o varios procesos en Visual Studio para obtener más información.

Vea también

Mostrar:
© 2014 Microsoft