2012-07-11 48 views
5

Estoy desarrollando una aplicación para instalar & ejecutada como un servicio de Windows. Todavía tiene errores y se detuvo inesperadamente (sin dejar nada en el registro de eventos de Windows) y cuando intenté volver a iniciar el problema recibí el errorWindows no puede iniciar el servicio

Windows no pudo iniciar el servicio {name of service} en la computadora local. Error 1067: el proceso finalizó inesperadamente.

He reiniciado el equipo (Server 2008 R2, una máquina virtual, en caso de que haga una diferencia), no hay ayuda. Desinstalé y reinstalé mi servicio, ¡y todavía recibo ese error!

Algo necesita necesita limpiar/actualizar para que intente iniciar el servicio de nuevo. No quiero reconstruir toda la máquina virtual pero me he quedado sin ideas.

ACTUALIZACIÓN

me olvidó mencionar que este servicio de Windows - exactamente el mismo código & instalar - se ejecutando en otras 3 máquinas sin el error anterior. Poner en ese depurador en OnStart() todavía suena como el camino a seguir.

+2

Por lo general, esto se debe a una excepción no controlada. –

+2

eso significa que hay algún error en su código. Verifique el registro de eventos para ver qué información le está dando. También intente agregar un mecanismo de registro para poder saber qué está mal – Shyju

+0

¿Su servicio tiene acceso a una unidad de red? – roymustang86

Respuesta

9

Si tiene acceso al código, puede agregar un método Debugger.Break en la primera línea del método OnStart.

Una vez que "rompes" en la aplicación, investiga dónde se produce la excepción.

+0

aseado. No sabía eso. – NotMe

+0

He puesto Debugger.Break() en la primera línea de OnStart() pero no está siendo golpeado :( – Hari

+0

@Hari ¿puedes verificar si tu aplicación compiló con la configuración de depuración (y no Release)? – oleksii

1

Puede conectar el depurador a un servicio en ejecución. Detalles en Debug Windows Service Applications.

Es una suerte que pueda replicar el problema fácilmente. Puede instalar .NET Studio con código para depurar su problema.

Otra técnica es convertir el Servicio en una aplicación normal. Sabes que el código sospechoso es durante el inicio. Simplemente crea la aplicación con código en la función de Inicio y comienza a depurar desde allí.

Buena suerte,

Tommy Kwee

Cuestiones relacionadas