2010-11-08 37 views
14

¿Se preguntó si alguien podría indicarme el camino correcto aquí?Debug Aplicación ASP.NET que se ejecuta en el servidor IIS remoto de VS2010

Estoy tratando de depurar una aplicación web desplegada y parece que no funciona el complemento. Aquí está el escenario:

VS2010 instalado en mi máquina, con todos los códigos fuente.

IE8 en mi máquina de navegación a ASP.NET sitio en el servidor IIS de producción (archivos .pdb Fwiw en el lugar de producción.)

Cuando hay que adjuntar el depurador a la sesión de IE, y continuar navegando por el sitio, ningún punto de interrupción es golpeado ... tan effectivamente no creo que realmente estoy depurando el sitio! ??

Supongo que necesito algún tipo de configuración de depuración remota? Si ese es el caso, si alguien sabe de alguna URL para ayudar, ¡sería muy apreciada!

¡Gracias de antemano!

Jim

Respuesta

9

He aquí un buen artículo para hacer precisamente eso:

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

Instalar los componentes de depuración remota en el equipo remoto y poner en marcha la depuración de monitor remoto (msvsmon.exe) cuando comience a depurar

+0

Aunque me ascendieron no dan todo lo que necesitaba ... ver esta pregunta: http://desbordamiento de pila.com/questions/4213286/how-to-debug-a-deployed-web-site – BIDeveloper

20

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

En primer lugar vamos a aclarar los términos utilizados en todo el resto de la guía:

diagram

cliente es el equipo en el que lo hace el desarrollo
remoto es el ordenador el código se ha desplegado a eso se está ejecutando en IIS

  1. Instalar msvsmon .exe (M icro s oft V isual S tudio lun Itor) en el equipo remoto.
    Puede encontrar el ejecutable instalado con Visual Studio en el cliente en la siguiente ruta:
    C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger\x86

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

    new server

    El Debugging Monitor 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]. Recuerda este nombre, porque lo necesitarás más tarde.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 problemas adicionales. Para intentar depurar de forma remota, abra el proyecto en Visual Studio. Este debería ser el mismo proyecto exacto que se implementa en IIS.

    En Visual Studio, querrá conectarse al proceso en el nuevo servidor. Ir a Herramientas> Asociar al proceso o golpear Ctrl + Alt + P

    attach to process

  3. En el asociar al proceso de diálogo, cambie el Calificador de nombre de su equipo actual con el nuevo nombre de servidor ([email protected]) y pulsa enter para ver una lista de los procesos disponibles en el equipo remoto:

    attach dialog

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

    Alternativamente, si recibió el siguiente mensaje, significa que su firewall está bloqueando el cliente y que los cuadros remotos se comunican .

    Unable to connect to the Microsoft Visual Studio Remote Debugging Monitor named 'User@Remote'. The Visual Studio Remote Debugger on the target computer cannot connect back to this computer. A firewall may be preventing communication via DCOM to the local computer. Please see Help for assistance.

  5. Si no fueron capaces de conectarse, puede haber diversidad de problemas en función de sus políticas de dominio. Para las configuraciones oficiales del cortafuegos, puede consultar el Configure the Windows 7 Firewall for Remote Debugging de Microsoft, pero me consta que falta información.

    Si adjuntando falló, pero aún así obtener un mensaje que el usuario conectado de esta manera:

    connected

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

    Para solucionar esto, en la computadora del cliente, vaya a Panel de control> Firewall de Windows> Configuración avanzada que debería abrir Windows Firewall con seguridad avanzada. Seleccionar Reglas de entrada y clic derecho para entrar en una nueva regla :

    new rule

    Dale la regla de cualquier nombre. De acuerdo con el asesoramiento en this SO question, en lugar de eximir a determinados puertos, permitiremos todo el tráfico para ejecutar cualquier ejecutable de Visual Studio. Ir a programas y servicios y seleccione la ruta de la carpeta completa al instalar 2010 de Visual Studio:
    %ProgramFiles% (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe

    a continuación, asegúrese de que la regla sólo se aplica a los equipos dentro del dominio (asegurándose privada y pública son sin marcar).

    visual studio rule

    Con un poco de suerte, cuando vuelva a colocar el proceso, debe ser capaz de entrar en la máquina remota.

  6. En este punto, debería ver una lista de todos los procesos en la máquina remota. Si desea depurar una aplicación de Windows, simplemente elija el nombre del proceso. Para ASP.NET, queremos adjuntarlo a w3wp.exe (WWW W orker P rocess). 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.

    attach dialog connected

    Asegúrese de que para insertarse en el tipo correcto de código 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 se obtiene el siguiente error, he encontrado que la reapertura de Visual Studio y msvsmon.exe con privilegios de administrador ha solucionado el problema

    Unable to attach to the process. The Visual Studio Remote Debugger (MSVSMON.EXE) has insufficient privileges to debug this process. To debug this process, launch the remote debugger using 'Run as administrator'. If the remote debugger has been configured to run as a service, ensure that it is running under an account that is a member of the Administrators group.

  8. Verás una advertencia de seguridad que se puede aceptar por Acople clic :

    security warning

  9. El último tema que r an into era conseguir los archivos del depurador para cargar. Debe asegurarse de que las bibliotecas que se ejecutan coinciden exactamente con las que están actualmente cargadas en Visual Studio y que tienen los archivos .pdb correctos en la solución en la máquina del cliente. Puede inspeccionar qué módulos se cargaron y de dónde cargaron yendo a Depurar> Windows> Módulos o presionando Ctrl + Alt + U. Para más información sobre los archivos de depuración de carga, también puede probar cualquiera de los siguientes recursos:

Con suerte le toca y trabajando para usted en este momento. Ahora puede capturar cualquier llamada realizada en su código alojado en IIS y pasar por ellas igual que lo haría durante el desarrollo.

Proof of Concept

Lectura adicional:

+0

gracias por la gran respuesta. Solo tengo un truco, que agregaría: si necesita depurar dominios simplemente agregue al archivo hotst en la computadora local el par de direcciones IP de la computadora remota y el nombre de host de Visual Studio Remote Debugger Opciones del monitor – isxaker

Cuestiones relacionadas