標籤:
1.建立Global.asax檔案
2.在Application_Error裡統一處理,可以寫入檔案,也可以寫入SQL。代碼如下
Exception ex = Server.GetLastError().GetBaseException(); StringBuilder sb = new StringBuilder(); sb.AppendLine(DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss")); //有被注入風險 string ip = ""; if (Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR") != null) { ip = Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR").ToString().Trim(); } else { ip = Request.ServerVariables.Get("Remote_Addr").ToString().Trim(); } sb.AppendLine("IP地址:" + ip); sb.AppendLine("瀏覽器:" + Request.Browser.Browser.ToString()); sb.AppendLine("瀏覽器版本:" + Request.Browser.MajorVersion.ToString()); sb.AppendLine("作業系統:" + Request.Browser.Platform.ToString()); sb.AppendLine("錯誤資訊:"); sb.AppendLine("請求地址:" + Request.Url.ToString()); sb.AppendLine("錯誤資訊:" + ex.Message); sb.AppendLine("錯誤源:" + ex.Source); sb.AppendLine("異常方法:" + ex.TargetSite); sb.AppendLine("堆棧資訊:" + ex.StackTrace); sb.AppendLine("===================================================================================================================="); string logFilePath = Server.MapPath("~/log/"); if (!Directory.Exists(logFilePath)) { Directory.CreateDirectory(logFilePath); } File.AppendAllText(logFilePath + DateTime.Now.ToString("yyyy.MM.dd") + ".log", sb.ToString(), Encoding.UTF8); Server.ClearError(); Response.Redirect("myError.htm");View Code
對於注入問題可看
http://www.cnblogs.com/kingthy/archive/2007/11/24/970783.html
http://www.cnblogs.com/chengmo/archive/2013/05/29/php.html
Asp.Net網站統一處理錯誤資訊