Parche para debugear aplicaciones ASP.NET en IIS7

Los que uséis VS 2005 para debugear aplicaciones ASP.NET en IIS7 en Windows Vista podéis encontraros uno de los siguientes errores cuando pulsáis F5 para enlazar el debugger en el IDE:

  • «An authentication error ocurred while communicating with the web server». (Ocurrió un error de autenticación mientras se comunicaba con el servidor web).
  • «Debugging failed because integrated Windows authentication is not enabled». (Falló el debugging porque la autenticación integrada de windows no está habilitada).
  • «Authentication error occurred while communicating with the web server.  Try disabling ‘Digest authentication'». (Ocurrió un error de autenticación mientras se comunicaba con el servidor web. Pruebe a deshabilitar ‘Digest authentication’).

Estos errores ocurren debido a la forma en que VS 2005 busca el ID del proceso IIS7 en donde se está ejecutando ASP.NET. Cuando usamos F5 para «autoenlazar» el debugger con Visual Studio le manda una petición HTTP a ASP.NET usando la autenticación de Windows para obtener los detalles del proceso. Esto funciona bien si tenéis habilitada la autenticación de windows en el servidor web, y se está usando la autenticación de Windows como método principal de autenticación en nuestra aplicación web. Sin embargo, los problemas llegan bajo ciertas circunstancias:

  1. Si tenemos habilitada la autenticación por formularios en ASP.NET y estamos ejecutando el «modo integrado» en IIS7. Esto bloquea el manejador del proceso.
  2. Si no tenemos el módulo de autenticación de Windows instalado en el servidor web (ahora es un componente opcional).
  3. Si estamos ejecutando Windows Vista Home (que no soporta el módulo de autenticación de windows).

Descarga del parche.

Para solucionar estos casos que bloquean el «autoenlazado», hemos publicado un parche para Visual Studio 2005.  Soluciona los problemas de los que hemos hablado antes. Podéis descargarlo desde aquí. Una vez que lo instaléis, cuando pulsemos F5 en Visual Studio todo funcionará como antes.

Podeis leer más sobre este parche y sobre los errores que corrige en este artículo, y en los siguientes post aquí y aquí.

Si tenéis algún problema instalando el parche o si continuais con los mismo problemas una vez instalado, podéis contactar con el soporte de Microsoft. La llamadas a soporte son gratuitas si están relacionadas con un bug de un producto. Podeis ver los detalles sobre cómo contactar con soporte en esta página.

Cómo enlazar manualmente el debugger a un proceso.

He ayudado a varias personas con este problema ántes de que se publicase el parche. Una de las cuentas de las que me di cuenta mientras lo hacía fué que un montón de desarrolladores no se dan cuenta de las opciones disponibles cuando están debuggeando, y las diferentes formas que podemos usar Visual Studio para debugear un proceso o aplicación.

Cuando pulsamos F5 en Visual Studio (DebugStart Debugging) le estamos diciendo a Visual Studio que arranque la aplicación y que la enlaze al debugger. Una alternativa que podemos usar es debugear una aplicación que ya está siendo ejecutada en el menú DebugAttach to Process…

Cuando seleccionamos ese menú, nos muestra un cuadro de diálogo que nos mostrará los procesos en ejecución (también podemos indicar una dirección IP para debugear en una máquina remota):

Si queremos debugear una aplicación ASP.NET que se está ejecutando en IIS, aseguraos de marcar el checkbox de «Show processes in all sessions» (desde que IIS se ejecuta como un servicio de windows y como una cuenta local). Luego, buscamos en la lista el proceso w3wp.exe (es el nombre del proceso de IIS6  e IIS7).

Haciendo doble clic en cualquier proceso hará que Visual Studio enlaze el debugger a ese proceso – en este punto, todos los puntos de ruptura que hallamos definido se lanzarán y ya podremos debuggear cualquier proceso con VS2005 como si lo hubiésemos lanzado con F5. Esto funciona tanto para aplicaciones web como para aplicaciones windows, y puede ser muy útil cuando ya tenemos la aplicación en ejecución. Daros cuenta de que ya no tendréis que hacer esto si tenéis instalado el parche.

Espero que sirva.

Scott.

Traducido por: Juan María Laó Ramos. Microsoft Student Partner.

toH tlhIngan Hol DajatlhlaH ‘e’ DaneH’a’?

0 comentarios sobre “Parche para debugear aplicaciones ASP.NET en IIS7”

  1. Estoy intentando debugear desde una maquina con Vista Home Premium y no me es posible.

    me sigue marcando el error «No está habilitada la autenticación de windows»

  2. Yo tengo un problema depues de que en un proyecto le adjunte el w3wp.exe pude debuguear, sin embargo despues al quere adjuntar a otra solucion ya no sale el el archivo w3wp.exe. como puedo resolver esto?

  3. Hola Gustavo:

    Tengo entendido que sólo se puede adjuntar una instancia del debuguer a un mismo, es decir, no puedes abrir dos visual studio y adjuntar los dos al mismo proceso.
    Prueba a marcar la casilla de «Ver los procesos de todos los usuarios» puede que sea por eso por lo que no lo ves en la lista.

    Espero que sirva.
    Un saludo.

  4. tengo el mismo proble que
    Rafael escribió,

    Estoy intentando debugear desde una maquina con Vista Home Premium y no me es posible.

    me sigue marcando el error “No está habilitada la autenticación de windows”
    que ayuda por favor estoy apunto de enloquecer……..

  5. tengo el problema de k las paginas no se muestran cuando presiono F5, pero si ejecuto la pagina aspx desde el iis, si la muestra… no puedo debugguear… y el proceso w3wp no me aparece… como lo doy de alta?

Deja un comentario

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