Utforsk ubehandlede unntak med ELMAH

Vi gjør alle vårt beste for å utvikle robuste applikasjoner med effektiv kode med riktig logikk for å håndtere unntak, men datamaskiner og brukere kan være uforutsigbare, og ubehandlede unntak kan krype inn i produksjonen. Nøkkelen er å gjenkjenne og løse disse problemene så snart som mulig, men deres tilfeldige natur gjør det ikke enkelt. Heldigvis kan Feilloggingsmoduler og -behandlere (ELMAH) se ASP.NET-applikasjonene dine når du ikke er tilgjengelig.

Hva er ELMAH?

Prosjektstedet beskriver ELMAH som "et applikasjonsomfattende feilloggingsanlegg", men dette kan ikke imponere deg, da det er mange måter å ordne unntak på riktig måte. Nøkkelfunksjonen i ELMAH er at den ikke krever koding eller koding av applikasjonen din. Det er riktig - det kan legges til en eksisterende ASP.NET-applikasjon mens du er på farten. Når ELMAH er på plass, holder den en logg over alle ubehandlede unntak og detaljer; denne loggen kan brukes til å bestemme årsaken og unngå fremtidige forekomster.

ELMAH er også et av de beste open source-prosjektene for ASP.NET-plattformen. Siden jeg oppdaget ELMAH bruker jeg den på alle applikasjonene mine.

Å få ELMAH

ELMAH er fritt tilgjengelig i en zip-fil på prosjektstedet. Installasjonen er så enkel som å trekke ut innholdet i zip-filen; dette inkluderer en basekatalog som inneholder lisensen, readme og en demo-kommandofil for å starte av demoen. I tillegg er det en eksempler-katalog for å få en følelse av å bruke den, sammen med en søppelkatalog for DLL-er, en db-katalog med installasjonsfiler for de forskjellige backend-alternativene, og verktøyskatalogen, som inneholder Cassini-webserveren som brukes av produkt. Den nåværende produktutgivelsen benytter .NET 2.0.

Når den er installert, gir et raskt klikk på demo.cmd-filen deg en rask titt på hvordan produktet fungerer. Den tar deg til en side der du kan utløse unntak og gir en kobling til ELMAH Web-tjenesten, som har oversikt over unntak (alt bruker Cassini-webserveren). Figur A viser standardpresentasjonen til ELMAH-webserveren. Figur A

ELMAH Web Service Listing (Klikk på bildet for å forstørre.)
Du kan bore ned til et unntak fra koblingen Detaljer på siden i figur A. Figur B viser et eksempel på å bore ned i et ubehandlet unntak fra et webapplikasjon. Det gir et stakespor øverst på siden med en liste over alle HTTP-servervariabler listet nederst på siden. Figur B

Detaljer om et ubehandlet unntak (Klikk på bildet for å forstørre.)

I tillegg til å se unntak i en nettleser, kan du laste ned detaljene i en komma-avgrenset csv-fil (via koblingen Last ned logg i figur A) eller som en RSS-strøm av de siste 15 unntakene (RSS Digest-lenke i figur A). Unntaksdetaljer blir sett på som HTML i figur B, men det er lenker for å se dem som XML eller JSON. Mens demoprogrammet sporer unntak i en tekstfil, kan du velge å lagre unntaksdetaljer i en backend-database. Produktet støtter Microsoft Access, SQL Server, MySQL, PostgreSQL og Oracle. Til slutt kan du velge å bli sendt hver gang et unntak inntreffer.

Ser på søknaden din

For å kunne bruke ELMAH til å bruke applikasjonen din, må du legge til applikasjonens web.config-fil og slippe elmah.dll-filen i søknadens søppelkatalog. Når dette er fullført, kan du se alle ubehandlede unntak for applikasjonen din ved å bruke programmets basis-URL pluss elmah.axd (for eksempel: http: /localhost/virtualdirectory/elmah.axd). Installasjonsfilen inneholder et eksempel web.config i eksemplekatalogen.

For mitt grunnleggende oppsett for å logge på en tekstfil, brukte jeg følgende elementer:

  • Elmah-delen i configSections-elementet. Jeg la til følgende to for logging:

type = "Elmah.SecuritySectionHandler, Elmah" />

type = "Elmah.ErrorLogSectionHandler, Elmah" />

  • Legg til nødvendig httpHandlers-seksjon:
  • Legg til nødvendige webServer-elementer:
  • Legg til elementer for ELMAH Web-tjenesten:

Oppsettet ditt kan inneholde flere elementer hvis du vil bruke e-post eller Twitter eller filtrere unntakene. I tillegg er det flere web.config-elementer for bruk av en database backend for å lagre unntaksdetaljer. Eksempelet web.config inkluderer alle disse seksjonene med mange kommentarer som gjør det enkelt. Det kan være lurt å sikre tilgang til ELMAH Web-tjenesten, som kan oppnås i den siste kulen ovenfor (autorisasjonselement).

Håndtere problemer

Jeg har hatt stor suksess med å bruke ELMAH, selv om datasikkerhetsinnstillinger i noen få tilfeller har forårsaket store hodepine; dette er vanligvis et resultat av IIS sikkerhetsinnstillinger, og jeg bruker MetaAcl-verktøyet for å gi IIS-brukeren (for applikasjonen) de nødvendige rettighetene. ELMAH Google-gruppene kan gi rikelig med retning når de blir møtt med slike problemer.

Hvorfor ikke bruke EMLAH?

ELMAH er så enkel å bruke og konfigurere at jeg ikke kan forstå hvorfor en utvikler ikke ville bruke den. Det er også en gave til støttepersonell, som raskt kan gjenopprette en produksjonsapplikasjon fra et ubehandlet unntak mens de gir detaljer om unntaket for utviklere for å løse problemet, og dermed unngå lignende problemer i fremtiden.

Noen utviklere sier ELMAH kan brukes til å erstatte fullstendig all unntakshåndteringskode, men jeg kommer ikke så langt med det. Jeg synes ELMAH er et flott kompliment til god kode.

Hold dine tekniske ferdigheter oppdatert ved å registrere deg på TechRepublics gratis nyhetsbrev om Software Engineer, levert hver tirsdag.

© Copyright 2021 | pepebotifarra.com