2012-07-11 40 views
5

Sto sviluppando un'applicazione per l'installazione & eseguita come servizio di Windows. E 'ancora buggy e si fermò improvvisamente (senza lasciare nulla nel registro eventi di Windows o) e quando ho provato ad avviare di nuovo ho avuto l'erroreImpossibile avviare il servizio Windows

Impossibile avviare il {nome del servizio} servizio sul computer locale. Errore 1067: il processo è terminato in modo imprevisto.

Ho riavviato il computer (Server 2008 R2, una macchina virtuale, nel caso in cui ciò faccia la differenza), nessun aiuto. Disinstallato e reinstallato il mio servizio, e ancora ottengo quell'errore!

Qualcosa sulla macchina deve essere eliminato/aggiornato in modo che tenti di riavviare il servizio. Non voglio ricostruire l'intera macchina virtuale ma sono fuori dalle idee.

UPDATE

Ho dimenticato di dire che questo servizio di Windows - esattamente lo stesso codice & installare - è esecuzione su 3 altre macchine senza l'errore precedente. Mettere in quel debugger in OnStart() suona ancora come la strada da percorrere però.

+2

Di solito questo è a causa di un'eccezione non gestita. –

+2

significa che c'è qualche errore nel codice. Controlla il registro degli eventi per vedere quali informazioni ti sta dando. Prova anche ad aggiungere un meccanismo di registrazione in modo che tu possa sapere cosa non funziona – Shyju

+0

Il tuo servizio accede a un'unità di rete? – roymustang86

risposta

9

Se si ha accesso al codice, è possibile aggiungere un metodo Debugger.Break alla prima riga del metodo OnStart.

Una volta che "si interrompe" nell'applicazione, si verifica dove viene generata l'eccezione.

+0

Neat. Non lo sapevo. – NotMe

+0

Ho messo Debugger.Break() alla prima riga di OnStart() ma non viene colpito :( – Hari

+0

@Hari puoi controllare se la tua applicazione è stata compilata con la configurazione di debug (e non rilasciare)? – oleksii

1

È possibile collegare il debugger a un servizio in esecuzione. Dettagli a Debug Windows Service Applications.

È una fortuna che si possa facilmente replicare il problema. È possibile installare .NET Studio con il codice per eseguire il debug del problema.

Un'altra tecnica consiste nel rendere il servizio un'app normale. Sai che il codice sospetto è durante l'avvio. Quindi, basta creare l'app con il codice nella funzione Esecuzione automatica e avviare il debug da lì.

Buona fortuna,

Tommy Kwee

Problemi correlati