PDA

View Full Version : ایجاد مدیریت بخش خطا در سایت



vista2010
شنبه 03 تیر 1391, 16:04 عصر
سلام
وقتی سایتی طراحی و دست مشتری داده میشه...بهتره error mode روoff بذاریم،یا حتا یه صفحه طراحی شه،زمانیکه خطایی رخ میده،این صفحه به کاربر نشون داده بشه!
یه جایی خوندم،برنامه نویس بهتره رو سیستمش یه بخش مدیریت خطا قرار بده که وقتی خطایی ایجاد شد اونجا ثبت بشه تا راحتتر بتونه خطاها رو ببینیه و به رفع اونها بپر دازه...
چه جوری میشه چنین کاری کرد؟
ببخشید اگه سوالم خیلی مبتدیه...واقعا نمیدونستم چه جوری برا پیداکردن جواب سوالم،سرچ بزنم...
ممنون

mehrzad_ali
شنبه 03 تیر 1391, 17:11 عصر
سلام
اول این کد رو باید توی فایل Global.asax بنویسید



void Application_Error(object sender, EventArgs e)
{
// Code that runs when an unhandled error occurs

//for get error
string filename = Server.MapPath(".") + "\\upload\\log.txt";
if
(!System.IO.File.Exists(filename))
System.IO.File.Create(filename);
System.IO.StreamWriter sw = new
System.IO.StreamWriter(filename, true);
sw.Write(DateTime.Now + "\n\r" + Server.GetLastError() + "\n\r\n\r");
sw.Close();
Response.Redirect("error.aspx");
}


با این کار خطاها توی فایل تکست ریخته میشه
حالا باید توی یه صفحه aspx این فایل تکست رو نشون بدبد
این کد رو توی فرم لود صفحه بنویسید




if (!IsPostBack)
{
string filename = Server.MapPath("~") + "\\upload\\log.txt";
StreamReader sw = new
StreamReader(filename, true);
while (!sw.EndOfStream)
{
ListBox_error.Items.Add(sw.ReadLine().ToString());
}
sw.Close();


//for random string
randomString rn = new randomString();
StringBuilder sb = new StringBuilder();
sb.AppendLine(rn.Character(10));
sb.Append("<br>");
sb.AppendLine(rn.CharacterNumber(10));
sb.Append("<br>");
sb.AppendLine(rn.ManualMode(10, "qwerty"));
sb.Append("<br>");
sb.AppendLine(rn.NonAlphaNumeric(10));
sb.Append("<br>");
sb.AppendLine(rn.number(10));
sb.Append("<br>");
Label1.Text = sb.ToString();
}

البته می تونید تابع getLasteError رو توی دیتابیس هم ذخیره کنید

vista2010
شنبه 03 تیر 1391, 19:48 عصر
زیاد متوجه کدهاتون نمیشم...میشه یه نمونه برنامه بذارید؟؟؟؟ممنون:خجالت:

mehrzad_ali
شنبه 03 تیر 1391, 20:09 عصر
نقل قول: ایجاد مدیریت بخش خطا در سایت

dorparasti
یک شنبه 04 تیر 1391, 00:25 صبح
برای مدیریت خطاهای سیستم و نظارت بر عملکرد وب سایت می تونید از ابزار های آماده مثل log4net (http://www.danatarin.com/questions/304/%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%81%D8%B1%D9%85-%D9%88%D8%B1%DA%A9-logging-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AF%D8%A7%D8%AA-%D9%86%D8%AA-%DA%86%DB%8C%D8%B3%D8%AA?sort=%25D8%25B1%25D8%25A7 %25DB%258C) ، ELMAH (http://www.dotnettips.info/Post/240/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-ELMAH) و سیستم نظارت خود Asp.net یعنی Health Monitoring (http://www.4guysfromrolla.com/articles/031407-1.aspx)استفاده کنید . این آخری نیاز به کد نویسی نداره و فقط باید در web.config تنظبماتش رو انجام بدید و دیتابیس aspnetdb رو بسازید .