Asp.net Hata Yönetimi – Global.asax
Asp.net ile yaptığınız sitede herhangi bir hata olduğunda, hata kaynağını ve bilgilerini alabilir ve hata olduğunu belirten bir sayfaya yönlendirebilirsiniz ;
Hata yönetimi global.asax dosyası ile yapılabilir. Projeye global.asax dosyası ekledikten sonra “Application_Error” alanına örnekteki gibi bir kod yazılabilir;
// // // void Application_Error(object sender, EventArgs e) //sitede bir hata olduğunda çalışır. { Exception ex = Server.GetLastError().GetBaseException(); //Son hatayı aldık string err = ex.Message;//Hatayı string bir değere atadık MailGonder(err);//Hatayı querystring,ResponseWrite(err) yöntemi yada session ile alıp sayfaya yazabilir veya kendinize mail gönderebilirsiniz Server.ClearError();//Bilgilerini aldığımız hatayı temizledik Response.Redirect("http://siteadi.com/Hata/error.html", false); //Kullanıcıyı hata olduğunu belirten bir sayfaya veya anasayfaya yönlendirebiliriz } // // //
Server.GetLastError().GetBaseException() ile hata mesajı yanında aşağıdaki bilgileride alabilirsiniz;
// // // Exception ex = Server.GetLastError().GetBaseException(); string err = ex.Message; // Hatanın nedeni - hata mesajı string err = ex.StackTrace; // Hatanın oluştuğu sayfanın konum bilgisi //Hatanın oluştuğu sayfaya gönderilen querystringler for (int i = 0; i < Request.QueryString.Count; i++) { string err += Request.QueryString.Keys[i] + " - " + Request.QueryString[i] + "<br />"; //Querystring keys ve değerleri } //Hatanın oluştuğu sayfaya gönderilen Form verileri for (int i = 0; i < Request.Form.Count; i++) { string err += Request.Form.Keys[i] + " - " + Request.Form[i] + "<br />"; } //Sunucudan alınan bilgiler for (int i = 0; i < Request.ServerVariables.Count; i++) { string err += Request.ServerVariables.Keys[i] + " - " + Request.ServerVariables[i] + "<br />"; } // // //
Yorumlar
Yorum Gönder