Cómo: Depurar una aplicación de servicio de Windows
Para depurar un servicio, primero debe iniciar el servicio y luego adjuntar un depurador al proceso en el que se ejecuta el servicio. Luego, la aplicación se puede depurar utilizando todas las funciones de depuración estándar de Visual Studio. Por ejemplo, si se adjunta a un proceso de WinLogon y luego detiene la depuración, el sistema se bloqueará porque no puede ejecutarse sin WinLogon. El depurador sólo se puede adjuntar a un servicio en ejecución. Adjuntar un proceso interrumpe la operación actual del servicio; en realidad, no finaliza ni suspende el procesamiento del servicio. Es decir, si un servicio se está ejecutando cuando comienza la depuración, técnicamente el servicio todavía está "iniciado" mientras está depurando, pero su procesamiento se bloquea. Un proceso adjunto a un servicio le permite depurar la mayor parte, pero no todo, el código del servicio, por ejemplo, debido a que el servicio ya se ha iniciado, no puede utilizar este método para depurar el código en el método OnStart del servicio o para depurar; el código en el método principal utilizado para cargar el código del servicio. Una forma de resolver este problema es crear un servicio temporal en la aplicación de servicio cuyo único propósito sea ayudar en la depuración. Puede instalar ambos servicios y luego iniciar este servicio "virtual" para cargar el proceso del servicio. Una vez que el servicio temporal haya iniciado el proceso, puede usar el menú Depurar en Visual Studio para adjuntarlo al proceso de servicio. Después de adjuntar el proceso, puede establecer puntos de interrupción y usarlos para depurar su código. Cuando sale del cuadro de diálogo para adjuntar al proceso, en realidad está en modo de depuración. Puede utilizar el Administrador de control de servicios para iniciar, detener, pausar y reanudar su servicio, alcanzando así puntos de interrupción establecidos. Después de una depuración exitosa, elimine este servicio "ficticio". Descripción Depurar el método OnStart puede resultar difícil porque el Administrador de servicios de Windows limita todos los intentos de iniciar un servicio a 30 segundos. Para obtener más información, consulte