Depuración de programas de servicio NT
------------ Extracto del libro Delphi 6 Guía de desarrollo de aplicaciones
Hay dos formas de depurar un programa de servicio. El primero es definir la parte de trabajo del servicio en una clase separada y depurarlo en un programa separado. El segundo tipo es depurar cuando el servicio se está ejecutando. El primer enfoque es una buena idea;
Utilizamos el primer método para probar al crear dos programas: ServiceApp y TestMailer (también disponible en el CD de este libro). Agregue los mismos componentes TidMessage, TTimer y TidStmp a un programa separado y cree un remitente de correo. Cuando se encuentra el defecto del programa TestMailer, todas las modificaciones se actualizan al programa de servicio. Crear un banco de trabajo o probar un programa es fácil, pero no siempre suficiente.
La segunda forma de probar un programa de servicio es instalar y ejecutar el programa de servicio, y luego adjuntarlo al proceso de ejecución en Delphi. Siga estos pasos para depurar el programa ServiceApp.exe mientras ejecuta el servicio.
1. Ejecute ServiceApp.exe /Instale en la línea de comando para instalar el programa de servicio.
2. Seleccione la configuración | Localice myService y haga clic en el botón Inicio de la barra de herramientas de servicio (los pasos son aplicables a Windows 2000; los pasos en Windows NT4.0 son casi los mismos).
3. Ejecute Delphi.
4. Cargue el proyecto ServiceApp.DPR.
5. Seleccione el elemento de menú de proceso en Delphi.
6. En el cuadro de diálogo Adjuntar a Process (como se muestra en la figura a continuación), seleccione la casilla de verificación Mostrar procesos del sistema.
7. Localice ServiceApp.exe y haga clic en el botón Adjuntar.
8. En Delphi, establezca un punto de interrupción en el método de evento Onexecute del archivo fuente del proyecto y presione F9.
La Figura B.3 Adjunto al cuadro de diálogo de proceso se puede utilizar para adjuntar un depurador de Delphi a un proceso de ejecución;
Delphi adjuntará el depurador al programa de servicio en ejecución y abrirá el cuadro de diálogo CPU. A menos que lea el lenguaje de ensamblaje muy bien, las vistas de la CPU no son muy útiles. Pero cuando el programa de servicio se ejecuta a un punto de interrupción, se detiene en el punto de interrupción y cambia a la vista del código Delphi. Después de que el usuario obtiene el control del servicio en ejecución a través de Delphi, el servicio se puede pasar y depurar como otros programas.
Nota: Como desarrollador, debe tener derechos de administrador en su PC. Increíblemente, algunas organizaciones confían en el código escrito por los desarrolladores, pero no les permiten administrar sus propias PC. La situación económica actual sigue siendo buena, así que busque un nuevo trabajo.
La documentación de Ayuda de Delphi menciona que si los permisos son insuficientes, unir al proceso de servicio puede fallar. Cuando tiene derechos de administrador en su PC, el proceso de servicio adjunto siempre funciona bien. El tema de ayuda "Servicios de depuración" contiene una tercera forma de depurar los servicios, que implica modificar la configuración del registro, a las que puede consultar.
Ye Zhengsheng
2005-05-22