Feilhåndtering Asp.net Kjerne

stemmer
14

I tidligere Asp.net versjonene ble jeg brukt til å lage en BaseController arvet fra de andre styringer, og det avskjære den generelle feil og logging av feilene med en enkel loggemetode og passerer ExceptionContext filterContext .

Bør jeg gjøre det samme i Asp.net 5? Jeg ser i Startup.cs at det er en hvis / annet utsagn som i utgangspunktet skille debug / live tilstand, med linje

app.UseErrorHandler(/Home/Error);     

for en produksjon anvendelse. Hvordan skal jeg koble i prosessen og logge feilene?

Takk

Publisert på 16/11/2014 klokken 13:33
kilden bruker
På andre språk...                            


1 svar

stemmer
17

Håndtering og logging feil i ASP.NET 5 innbefatter et par elementer.

For å håndtere feil i en produksjonsscenario og viser en feilside, det app.UseExceptionHandler()er metoden er veien å gå. Diagnose repo på ASP.NET GitHub org inneholder en prøve som viser dette. For utvikling tids scenarier der du ønsker å se en hel stabel spor og annen diagnostisk informasjon, bruker app.UseDeveloperExceptionPage()sett i dette utvalget .

Hvis programmet bruker MVC 6, så er det en MVC-spesifikk måte å håndtere feil, mye som det var i tidligere versjoner av MVC. I MVC 6 et filter (eller kontrolleren i seg selv, som også er et filter) kan håndtere / overstyre OnActionExecuted-metoden og inspisere den ActionExecutedContextparameter for å forsøke å håndtere feil.

Når det gjelder logging, det er en ny logging infrastruktur i ASP.NET fem som rapporterer en god del informasjon til noen registrert ILogger. Standard prosjektmaler i Visual Studio 2015 registrere noen loggere som logger feil (og andre data) til konsollen og avlusningsinformasjon vinduet VS. Men når du kjører i IIS eller IIS Express er det ingen konsollvindu (ennå!). Men hvis du kjører fra kommandolinjen (med dnx web) så vil du se feilen. Eller, selvfølgelig, kan du registrere en annen logger som skriver til en loggfil eller database og se loggene der.

For å registrere en tilpasset ILoggeri en web-app:

  1. Skriv en logger som implementerer ILoggergrensesnittet. Se DNX implementeringer for hvordan du gjør dette.
  2. Legg en parameter av type ILoggerFactorytil appen din Startupklassens Configuremetode.
  3. I Configuremetodekallet loggerFactory.AddProvider(<some provider>)og pass i en forekomst av logger.
Svarte 16/11/2014 kl. 20:10
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more