Saltar al contenido

Depurar la aplicación ASP.NET que se ejecuta en un servidor IIS remoto desde VS2010

Solución:

Aquí hay una guía completa paso a paso porque hay mucha información dispersa y el artículo de Microsoft vinculado asume mucha información.

Primero, aclaremos los términos utilizados en el resto de la guía:

diagrama

Cliente es la computadora en la que desarrollas
Remoto es la computadora en la que se implementó el código que se ejecuta en IIS

  1. Instale msvsmon.exe (METROicrosa menudo VisualStudio Lunitor) en la computadora remota.
    Puede encontrar el ejecutable instalado con Visual Studio en su cliente en la siguiente ruta:

    VS 2010: C:Program Files (x86)Microsoft Visual Studio 10.0Common7IDERemote Debuggerx86 
    VS 2017: C:Program Files (x86)Microsoft Visual Studio 14.0Common7PackagesDebuggerX64

    Cuando la herramienta esté en funcionamiento, debería ver la siguiente aplicación:

    nuevo servidor

    El monitor de depuración ha creado un servidor al que puede conectarse de forma remota. Si está en una máquina con Windows, el nombre probablemente sea [email protected]. Recuerde este nombre, porque lo necesitará más adelante. Si desea copiarlo directamente, puede ir a Herramientas> Opciones y verá el nombre del servidor. Incluso puede cambiarlo a otra cosa si lo desea.

  2. Desde aquí puede probar el enfoque de escopeta y ver si todo funciona, pero dependiendo de la configuración de su red, puede haber algunos contratiempos adicionales. Para intentar depurar de forma remota, abra el proyecto en Visual Studio. Este debería ser exactamente el mismo proyecto que se implementa en IIS.

    En Visual Studio, querrá adjuntar al proceso en el nuevo servidor. Vaya a Herramientas> Adjuntar al proceso o presione control + Alt + PAG

    adjuntar al proceso

  3. En el cuadro de diálogo Adjuntar al proceso, cambie el calificador del nombre de su computadora actual al nuevo nombre del servidor ([email protected]) y presione enter para ver una lista de los procesos disponibles en la computadora remota:

    adjuntar diálogo

  4. Si todo vuelve de inmediato, está en buenas manos. Significa que no había políticas de firewall que le impidieran conectarse con el servidor remoto y puede pasar al Paso 6.

    Alternativamente, si recibió el siguiente mensaje, significa que su firewall está bloqueando la comunicación entre el cliente y las cajas remotas.

    No se puede conectar al Monitor de depuración remota de Microsoft Visual Studio llamado 'Usuario @ Remoto'.  El depurador remoto de Visual Studio en el equipo de destino no se puede volver a conectar a este equipo.  Un firewall puede estar impidiendo la comunicación a través de DCOM con la computadora local.  Consulte la Ayuda para obtener ayuda.

  5. Si no pudo conectarse, podría haber una variedad de problemas según las políticas de su dominio. Para las configuraciones oficiales de firewall, puede consultar Configurar el Firewall de Windows 7 para depuración remota de Microsoft, pero descubrí que faltaba detalles.

    Si la conexión falló, pero aún recibe un mensaje de que el usuario se conectó así:

    conectado

    Entonces significa que el problema no está en las reglas de salida del cliente o las reglas de entrada en el servidor remoto. Es mucho más probable que el problema esté en las reglas de entrada en la máquina cliente.

    Para solucionar esto, en la computadora Cliente, vaya a Panel de control> Firewall de Windows> Configuración avanzada que debería abrirse Firewall de Windows con seguridad avanzada. Seleccione Reglas de entrada y haga clic derecho para ingresar un Nueva regla:

    nueva regla

    Dale a la regla cualquier nombre. Según los consejos de esta pregunta SO, en lugar de excluir puertos particulares, permitiremos que todo el tráfico pase para cualquier ejecutable de Visual Studio. Vaya a Programas y servicios y seleccione la ruta completa de la carpeta para la instalación de Visual Studio 2010:
    %ProgramFiles% (x86)Microsoft Visual Studio 10.0Common7IDEdevenv.exe

    Luego, asegúrese de que la regla solo se aplique a las computadoras dentro del dominio (asegurándose de que privado y público estén desmarcados).

    regla de Visual Studio

    Con suerte, cuando vuelva a adjuntar el proceso, debería poder acceder a la máquina remota.

  6. En este punto, debería ver una lista de todos los procesos en la máquina remota. Si quisiera depurar una aplicación de Windows, simplemente elegiría el nombre del proceso. Para ASP.NET, queremos adjuntar al w3wp.exe (WWW Worker PAGproceso). Si no lo ve en la lista, intente iniciar el servidor abriendo la página web de la aplicación que desea depurar. Puede hacer esto en localhost o navegando a la dirección en IIS desde cualquier computadora.

    adjuntar diálogo conectado

    Asegúrese de adjuntar el tipo de código correcto para su aplicación. Puede seleccionar entre nativo (C ++, etc.) o administrado (VB, C #, etc.), o seleccionar automático y dejar que Visual Studio decida.

  7. Si recibe el siguiente error, descubrí que la reapertura de Visual Studio y msvsmon.exe con privilegios de administrador solucionó el problema

    No se puede adjuntar al proceso.  El depurador remoto de Visual Studio (MSVSMON.EXE) no tiene privilegios suficientes para depurar este proceso.  Para depurar este proceso, inicie el depurador remoto usando 'Ejecutar como administrador'.  Si el depurador remoto se ha configurado para ejecutarse como un servicio, asegúrese de que se esté ejecutando con una cuenta que sea miembro del grupo Administradores.

  8. Verá una advertencia de seguridad que puede aceptar haciendo clic en Adjuntar:

    advertencia de seguridad

  9. El último problema con el que me encontré fue conseguir que se cargaran los archivos del depurador. Debe asegurarse de que las bibliotecas que se están ejecutando coincidan exactamente con las que están cargadas actualmente en Visual Studio y que tengan los archivos .pdb correctos en la solución en la máquina cliente. Puede inspeccionar qué módulos se cargaron y desde dónde se cargaron yendo a Depurar> Windows> Módulos o presionando control + Alt + U. Para obtener más información sobre la carga de archivos del depurador, también puede probar cualquiera de los siguientes recursos:

    • Detención del mensaje “No se alcanzará el punto de interrupción actualmente”
    • Se corrigió “El punto de interrupción no se alcanzará actualmente. No se han cargado símbolos para este documento”.

Ojalá esté listo y funcionando para usted en este momento. Ahora puede capturar cualquier llamada realizada en su código alojado en IIS y recorrerlas de la misma manera que lo haría durante el desarrollo.

Prueba de concepto

Otras lecturas:

  • Cómo: configurar la depuración remota
  • Depuración remota de IIS: depure su aplicación ASP.NET que está alojada en “Servidor IIS remoto”

Aquí hay un buen artículo para hacer precisamente eso:

http://msdn.microsoft.com/en-us/library/bt727f1t.aspx

Instale los componentes de depuración remota en la computadora remota e inicie el Monitor de depuración remota (msvsmon.exe) cuando comience a depurar

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *