Articles

The Core Technologies Blog

En Windows-tjänst som är utformad för att köras ”huvudlöst” och obevakad i bakgrunden kan inte enkelt använda konventionella popup-fönster för att rapportera om sina aktiviteter, eftersom en användare kanske inte ens är inloggad. Istället uppmuntras en tjänst att skicka viktig kommunikation till Windows händelselogg – ett administrativt verktyg som samlar in och lagrar meddelanden och händelser. När dessa meddelanden har registrerats kan de vara till stor hjälp vid felsökning av problem, till exempel när en tjänst slutar oväntat eller när den inte alls startar.

Visa händelser från Windows-tjänster

Använd Microsofts händelsevisare för att se meddelanden som skrivs till händelseloggen. Starta programmet genom att klicka på Start-knappen och skriva Event Viewer, eller från Kontrollpanelen (sök efter programmet efter namn). Det något röriga fönstret bör komma upp efter några sekunder:

Event Viewer

På vänster sida visas ett träd som grupperar de olika loggar som fångats på din maskin. Händelserna från Windows Services (och andra program som körs på datorn) arkiveras under Windows Logs > Application. Navigera till det avsnittet för att läsa in händelserna i mitten av fönstret, med hela listan överst och detaljer om den markerade händelsen under:

Event Viewer - Application Log

Meddelanden från din Windows-tjänst kommer att ha tjänstens visningsnamn i kolumnen Källa.

Viktiga komponenter i en händelse

I händelsevisaren visas över 10 delar av den information som är kopplad till varje händelse, bland annat:

  • Nivå – Hur viktig är den här händelsen?

    Varje händelse klassificeras i en av tre kategorier:

    Information: En informativ men oviktig händelse. Du kommer förmodligen att se många av dessa, och de kan säkert ignoreras om du inte gräver i ett specifikt problem från ett program eller en tjänst. Varning: En måttligt viktig händelse. De här innebär inte nödvändigtvis ett fel, och din programvara kommer förmodligen att halta, men de bör granskas regelbundet för att se om något nämnt kan lösas. Fel:

  • Datum och tid – När inträffade händelsen?
  • Källa – Vilket program rapporterade händelsen?

    Som tidigare nämnts kommer en händelse som skrivs av en Windows-tjänst att innehålla tjänstens visningsnamn som källa.

  • Beskrivning – Vad hände?

    Den fullständiga beskrivningen, som visas tydligt i den nedre rutan, kommer (förhoppningsvis) att innehålla alla relevanta detaljer om händelsen.

Den här informationshändelsen kommer till exempel från tjänsten för upptäckt av interaktiva tjänster (”UI0Detect”) som rapporterar att Anteckningsblocket visar sig i Session 0:

Interactive Services Detection Service Event

Visa händelser om Windows-tjänster

Medan programloggen håller reda på händelser från en tjänst som körs, registrerar Windows Logs > Systemområdet när tjänster startas, stoppas, kraschar eller inte startas. Leta efter händelser med källan inställd på Service Control Manager (SCM). Här är till exempel SCM som berättar att tjänsten Windows Print Spooler har kraschat:

Event Viewer System Event

Visa händelser från AlwaysUp och Service Protector

Både AlwaysUp och Service Protector skriver meddelanden till avsnittet Application i händelseloggarna (Windows Logs > Application).

För AlwaysUp loggas händelser från ditt program som heter ”My Application” med Source inställd på My Application (hanteras av AlwaysUpService). På sidan Meddelanden i händelseloggen listas och förklaras de rapporterade händelserna.