15. juni 2006 - 14:13Der er
7 kommentarer og 1 løsning
Lave skudsikker fejl håndtering
Jeg koder asp.net 2.o og bruger masterpage på mit site. Jeg vil gerne have lavet en fejlhåndtering som viser at der er sket en fejl på en side der bruger min masterpage. Men hvis det er forbindelse til databasen eller en evt. vedvarende fejl på selve masterpage skal den vise en fejlmeddelse på en side der ikke bruger masterpage.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Du kan checke på den fejl der er sket, og så viderestille til forskellige sider afhængig af fejltypen. Generel håndtering af fejl kan du lægge i global.asax:
Hej snepnet, Jeg fanger også fejlen i global.asax jeg har så forskellige fejl sider. hvis fejlen kun er på en underside vise der en fejl side som implementere min masterpage, hvis det er en generel fejl skal den vise en fejl side lavet i html. det har jeg lavet på følgende måde:
void Application_Error(object sender, EventArgs e) { try { // Fejlenbeskeden hentes Exception ex = Server.GetLastError().GetBaseException(); fejllogging fejllog = new fejllogging();
// Hvis fejlen er at siden ikke eksistere skal brugeren se fejl3.aspx if (ex.StackTrace.Contains("CheckVirtualFileExists(VirtualPath virtualPath)") || ex.Message == "File does not exist.") { fejllog.logAdvarsel(Request.Url.ToString(), Request.UserHostAddress.ToString(), Server.MapPath(".")); Response.Redirect("fejl3.aspx"); } else { // Fejlen logges via fejllog fejllog.logFejl(ex, Request.Url.ToString(), Request.UserHostAddress.ToString(), Server.MapPath(".")); // Hvis fejlen er på masterpage vis fejl2.htm // Ellers vise fejl.aspx som implementere masterpage if ((ex.ToString()).Contains("MasterPage.master")) Response.Redirect("fejl2.htm"); else Response.Redirect("fejl.aspx"); } } catch (Exception ex) { } }
Mit problem er at den ikke altid virker, jeg har været ud for at den er gået i en uendelig løkke fordi den manglede en dll fil. Hvordan kan jeg skrive den fejlhåndtering rigtigt?
Er du med på at du kan sætte en custom erros sektion ind i din konfigurationsfil? F.eks.: <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> <error statusCode="403" redirect="NoAccess.htm" /> <error statusCode="404" redirect="FileNotFound.htm" /> </customErrors> Mvh
Jeg logger jo også fejlene i tekstfiler (en tekst fil for manglende sider og en for generelle fejl) kan det give nogle problemer i forbindelse med customErrors?
Hvis jeg bruger customErrors kan jeg vel også ende i en løkke, eller hvad?
Hmmm... jeg kan ikke se hvad der i din kode skulle give en løkke - du konsumerer jo eventuelle exceptions, og hvad er det for en dll-fil du skriver om? Mvh
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.