以ASP.Net而言就是經典的黃底紅字啦!所以這時候最好做一下錯誤訊息導頁。
一、Web.config設定:
在Web.config的<system.web>中加入
<customErrors defaultRedirect="GenericErrorPage.aspx" mode="On" />
二、攔截網頁設定:
GenericErrorPage.aspx 裡面我是用DBMail來做通知工具,頁面如下:
<%@ Page Language="C#" %>三、利用在跟目錄下放一個叫"IsRD的檔案"來區別是否要攔截訊息∼
<%@ Import Namespace="System.IO" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (Server.GetLastError() != null)
{
//使用asp.net 傳送MAIL
//MailMessage mm = new MailMessage("admin@asp.net","signally@yutian.com.tw","DCM網站錯誤訊息",Server.GetLastError().GetBaseException().Message);
string s = "",ShowMsg="",mm;
mm = (Server.GetLastError().GetBaseException().Message).Trim().Replace("'", "#");
//將錯誤清除
Server.ClearError();
//傳送紀錄錯誤的訊息給管理員。
try
{
//針對已經的錯誤(如:Send Mail)做處理
//SmtpClient sc = new SmtpClient("localhost");
//sc.Send(mm);
//改用DB mail
if (File.Exists(Server.MapPath("~/IsRD")))
{
Response.Write(mm);
}
else
{
ShowMsg = "系統忙碌中、或程式暫時無法執行,已通知系統管理員處理,請稍後再試。";
s = "Exec ZSendErrMsg @tp = 1,@em= '',@mm = '" + mm + "'";
Class1.ExecSQL(s);
Response.Write(ShowMsg);
//Server.Transfer("~/ErrorPage.aspx");
}
}
catch (Exception ex)
{
Response.Write(ex.Message );
}
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>伺服器忙碌</title>
</head>
<body>
</body>
</html>
--
看到、想到、說到、做到
能夠填平大海的誓言,也比不上邁出一步的價值
是以吾輩此生,再無任何誓言
沒有留言:
張貼留言