2010-02-02 18 views
5

Lo he visto durante mucho tiempo, y finalmente decidí plantear la pregunta aquí. Tengo algunas aplicaciones que necesito mantener que fueron escritas en Delphi 2007 para .NET (ASP.NET 2.0). Normalmente, la primera vez que ejecuto la aplicación (usando IIS) aparece el mensaje clásico "No se puede iniciar la depuración en el servidor web. No se puede adjuntar al proceso de trabajo de ASP.NET". Simplemente presiono F9 (ejecutar) nuevamente y se ejecuta. A veces tengo que intentar ejecutar varias veces antes de que realmente se ejecute.Mensaje de error "No se puede iniciar la depuración ... No se puede adjuntar al proceso de trabajo de ASP.NET" en Delphi 2007 para .NET

Estoy ejecutando Windows 7 de 64 bits (y he visto el mismo efecto en Vista de 64 bits). Tengo IIS configurado para ASP.NET, y tengo el siguiente código en mi archivo Web.config.

<system.webServer> 
     <modules> 
     <add name="DbgConnect" type="Borland.DbkAsp.DbkConnModule,Borland.dbkasp,Version=10.5.0.0, 
      Culture=neutral, PublicKeyToken=b0524c541232aae7" preCondition="managedHandler" /> 
     </modules> 
     <validation validateIntegratedModeConfiguration="false" /> 
    </system.webServer> 

El punto es que finalmente puedo ejecutar la aplicación en el depurador, a veces incluso en el primer intento. Muchas veces cuando recibo la falla, ocurre unos 15 segundos más o menos después de presionar Ejecutar, a veces incluso después de haber tocado una página o dos (o tres) de la aplicación web. Y, sí, cuando Delphi entra en este modo, simplemente puedo ejecutar sin depuración, y todo está bien (a menos que realmente quiera depurar). Y, puedo seguir intentando ejecutar el depurador y, finalmente, funcionará.

Parece que el depurador .NET de Delphi tiene de alguna manera la idea de que la aplicación no se puede ejecutar, y luego abandona y detiene el proceso (que como he mencionado a veces se está ejecutando claramente).

Sé de otros desarrolladores que también han visto este comportamiento. Mi pregunta es, ¿alguien sabe cómo detener este comportamiento molesto?

+0

Estoy bastante seguro de que esto es algo que ocurre internamente con Delphi 2007 para .NET. Parece que el depurador se apaga de alguna manera. Llegué a esta conclusión porque a veces puedo hacer clic en 2 o 3 páginas diferentes de la aplicación ASP.NET antes de que se muestre este mensaje de error. Claramente, el mensaje de error es incorrecto. Y, el error parece ser planteado desde el depurador. En este punto, creo que la posibilidad de que Embarcadero corrija esta característica en una característica que ha quedado obsoleta (Delphi para .NET) es casi nula. –

Respuesta

0

Si tiene este problema, seguirá teniendo este problema. Sin embargo, aquí hay una solución.

Comience por ejecutar su proyecto sin depuración, y luego conéctelo una vez que esté funcionando. Para hacer esto, seleccione Ejecutar | Ejecutar sin depuración, o presione Ctrl-Shift-F9.

Una vez que la aplicación esté en funcionamiento y desee tener los servicios del depurador disponibles, seleccione Ejecutar | Adjuntar al proceso. En el cuadro de diálogo Adjuntar al proceso, configure el menú desplegable Depurador en CodeGear .NET Debugger. IIS ahora aparecerá en el cuadro de lista Procesos en ejecución. En mi máquina, aparece como w3wp.exe. Desmarque la casilla de verificación Pausar después de adjuntar y luego haga clic en Adjuntar. (Después de usar el cuadro de diálogo Adjuntar al proceso la primera vez, se usará el depurador .NET por defecto y Pausa después de adjuntar no se marcará).

Ahora se está ejecutando con el depurador habilitado. Si llega a un punto de interrupción, o encuentra una excepción, o selecciona Ejecutar | Program Pause, se cargará el depurador. Si desea deshabilitar el depurador sin cerrar la aplicación, seleccione Ejecutar | Separar del programa.

Aparentemente, dado que la aplicación ya se está ejecutando, lo que sea que se haya dado por vencido y el mensaje de error falso no esté involucrado.

En el tamaño más, hay un efecto secundario agradable de utilizar este enfoque para depurar un Delphi para la aplicación .NET. Una vez que está ejecutando, y encuentra un problema, puede abrir el depurador y ver qué está pasando dentro. Si encuentra un problema para solucionar, desconecte del proceso, solucione el problema y vuelva a compilar. Puede dejar su aplicación ejecutándose en IIS.

Una vez que el proyecto se ha compilado nuevamente, la siguiente página que acierte en la aplicación utilizando IIS hará que se cargue el programa actualizado. Si necesita el depurador nuevamente, simplemente conéctelo al proceso de IIS. En otras palabras, usted depura, repara, recompila, depura, arregla, recompila, ... sin tener que cerrar la aplicación en su navegador.

0

No recuerdo el mensaje de error exacto, pero creo que he visto algo al menos similar en el pasado. Todo lo que hice para solucionarlo fue ejecutar una "Reparación" en .NET 2.0 Framework (a través del Panel de control -> Agregar/Quitar programas). Entonces quizás reinicie su computadora después de eso ...

+0

Actualmente estoy trabajando en un proyecto diferente. Cuando regrese a Delphi para .NET intentaré esto. Gracias por la sugerencia. –

+0

OK, de vuelta en este proyecto. Hice una reparación en .NET 2.0 Framework SDK (ese es el único elemento .NET en el applet Programas y características. Estoy en ejecución en Windows 7). Las cosas parecen ser un poco mejores, pero sigo teniendo el comportamiento de forma regular. –

Cuestiones relacionadas