Avatar billede tobbi Nybegynder
15. januar 2004 - 12:51 Der er 10 kommentarer og
1 løsning

Error log

hejsa

er ved at lave en error log i C# .NET
i min web config, har jeg sat følgende ind:

<customErrors mode="On" defaultRedirect="/include/messages/msg_error_friendly.aspx" />

det virker fint.
Men mit spørgsmål er, om jeg på denne side hvor jeg smider data ned i en log-tabel kan fange "error"-beskeden.

har rodet lidt med stacktrace, men kan ikke få det til at virke.
Avatar billede mufoxe Nybegynder
15. januar 2004 - 12:59 #1
Du kan ikke på siden, men du kan fange fejlen i Global.asax i Application_Error med

Server.GetLastError().InnerException
Avatar billede mufoxe Nybegynder
15. januar 2004 - 13:00 #2
Du kommer forbi metoden inden du ryger ind på din custom error side.
Avatar billede tobbi Nybegynder
15. januar 2004 - 13:25 #3
ok... men har du så et forslag til hvordan jeg gemmer det i min tabel.

Skal jeg lave en funktion i global.asa, eller kan jeg gemme error i session eller hvad ??
Avatar billede mufoxe Nybegynder
15. januar 2004 - 13:48 #4
Hvis du vil vise beskeden på din customside, er Session, Cookies eller lign. gode bud.

Hvis du vil lave persistent logging, kan du gemme i DB og sende ID'et med i cookie eller session.
Avatar billede tobbi Nybegynder
15. januar 2004 - 15:24 #5
ok.. der er lidt at arbejde videre med.
tak for hjælpen :o)
Avatar billede tobbi Nybegynder
15. januar 2004 - 16:51 #6
Har tilføjet følgende i min global.asax:

protected void Application_Error(Object sender, EventArgs e)
{
// get the exception (potentially log it or show some friendly error)
Exception ex = Server.GetLastError();
InsertErrorLog(ex.InnerException.Message.ToString());
}

det virker fint med de fleste fejl, den kalder min funktion og smider i DB, men nogle fejl vil den ikke registrere fx:

The transport failed to connect to the server.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.


[COMException (0x80040213): The transport failed to connect to the server.
]

??
Avatar billede mufoxe Nybegynder
15. januar 2004 - 17:05 #7
Ja, det ser jo ud som om det er selve webserveren (aspnet worker processen), der fejler. Jeg er ikke sikker, men det er vel meget fornuftigt at antage at hvis selve ASPNET processen fejler, er den ikke i stand til at redirecte dig til global.asax eller til din fine custom error page. Har jeg ret i min antagelse?
Avatar billede tobbi Nybegynder
15. januar 2004 - 17:29 #8
jo, den redirecter rigtig nok til min custom-side.
men det vil ikke lægge noget i db.

måske det er fordi at "ex.InnerException.Message" fejler ved nogle exceptions.
Avatar billede mufoxe Nybegynder
15. januar 2004 - 17:52 #9
Ja, lyder meget fornuftigt. Prøv at sætte et break point i global.asax og se om InnerException er sat til noget.

Du kan evt. teste det og skrive ex ned, hvis det viser sig at InnerExpception ikke er sat.
Avatar billede tobbi Nybegynder
16. januar 2004 - 12:17 #10
har fundet fejlen...

det var en sql-fejl, lidt pinligt :o)
men nu virker det som det skal.
Avatar billede mufoxe Nybegynder
16. januar 2004 - 12:59 #11
Ja, jeg laver jo ALDRIG pinlige fejl selv! .... nej, vent :)
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
Kategori
Kurser inden for grundlæggende programmering

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