Avatar billede jonas82 Nybegynder
10. december 2010 - 11:38 Der er 3 kommentarer

Indikere fejl ved programmatisk nedlukning af service

Jeg har en windows service skrevet i .NET 2.0, som jeg ønsker skal lukke ned med en fejl hvis den fx har fejlet i databaseforbindelse x gange. Jeg vil opnå, at et service monitor program kan opfange at den er fejlet.

Jeg har prøvet at sætte ErrorCode og kalde Stop() på ServiceBase, men det ser ikke ud til at fungere (den lukker bare pænt ned med "Service stopped successfully." i Event loggen). Herudover har jeg prøvet at kaste unhandled exceptions.
Avatar billede olmer Nybegynder
15. december 2010 - 13:43 #1
det kan godt være jeg misforstår et eller andet, men er det ikke bare at selv sætte en besked i eventloggen, med fejlbeskeden fra din exception, inden du kalder stop.

if (!EventLog.SourceExists(sSource))
      EventLog.CreateEventSource(sSource, sLog);
      EventLog.WriteEntry(sSource, sEvent);

En enkelt ting i denne sammenhæng er at den account din service bruger skal have rettinghed til eventloggen (det tog mig lidt tid at finde den fejl :-)  )

Ole
Avatar billede jonas82 Nybegynder
19. december 2010 - 14:23 #2
Hej Ole,

Tak for dit svar.

Når man bare stopper den almindeligt med stop, opdager service manager værktøjet (overvågning) ikke at der er sket en fejl og det er desværre et krav at den skal opdage det. Kan bl.a. bruges til at sende email ved crashed service el.l.

Jonas
Avatar billede Syska Mester
20. december 2010 - 10:56 #3
Kan du ikke hooke op på en stop event eller override en metode, så du eventuelt kan fange det event ?

mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester