Application_Error應用
void Application_Error(object sender, EventArgs e){
// 在出現未處理的錯誤時運行的代碼
Exception objErr = Server.GetLastError().GetBaseException();
string error = string.Empty;
string errortime = string.Empty;
string erroraddr = string.Empty;
string errorinfo = string.Empty;
string errorsource = string.Empty;
string errortrace = string.Empty;
error += "發生時間:" + System.DateTime.Now.ToString() + "<br>";
errortime = "發生時間:" + System.DateTime.Now.ToString();
error += "發生異常頁: " + Request.Url.ToString() + "<br>";
erroraddr = "發生異常頁: " + Request.Url.ToString();
error += "異常信息: " + objErr.Message + "<br>";
errorinfo = "異常信息: " + objErr.Message;
errorsource = "錯誤源:" + objErr.Source;
errortrace = "堆棧信息:" + objErr.StackTrace;
error += "--------------------------------------<br>";
Server.ClearError();
Application["error"] = error;
//獨占方式,因為文件隻能由一個進程寫入.
System.IO.StreamWriter writer=null;
try
{
lock (this)
{
// 寫入日誌
string year = DateTime.Now.Year.ToString();
string month = DateTime.Now.Month.ToString();
string path = string.Empty;
string filename = DateTime.Now.Day.ToString() + ".txt";
path = Server.MapPath("~/Error/") + year + "/" + month;
//如果目錄不存在則創建
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}
System.IO.FileInfo file = new System.IO.FileInfo(path + "/"+filename);
//文件不存在就創建,true表示追加
writer = new System.IO.StreamWriter(file.FullName, true)
writer.WriteLine("用戶IP:" + Request.UserHostAddress);
writer.WriteLine(errortime);
writer.WriteLine(erroraddr);
writer.WriteLine(errorinfo);
writer.WriteLine(errorsource);
writer.WriteLine(errortrace);
}
}
finally
{
if (writer != null)
writer.Close();
}
Response.Redirect("~/Error/ErrorPage.aspx");
}
ErrorPage.aspx
<head runat="server">
<title>出錯信息</title>
<link href="css/SITE.CSS" type="text/css" rel="stylesheet" />
</head>
<body>
<form runat="server">
<asp:Label ID="Label1" runat="server" Width="568px"></asp:Label>
</form>
</body>
ErrorPage.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
this.Label1.Text = Application["Error"].ToString();
}
當然,錯誤頁你可以不顯示具體的錯誤信息,而是給用戶一個友好的提示頁麵。
原帖地址:https://blog.csdn.net/w809026418/archive/2009/08/19/4462237.aspx
最後更新:2017-04-02 22:16:10