1使用定製錯誤頁面
雖然我們發送給使用者的公用錯誤資訊是安全的,就是說它不會威脅到應用程式的秘密,但是這樣的資訊並不好看。也許你希望使用者永遠也看不到這樣的資訊。相反,當處理請求的過程中,如果發生了一個為處理的錯誤,你希望能夠顯示自己的“定製錯誤頁面”,顯示出自己的品牌以及特定的錯誤資訊。
向ASP.NET 應用程式中增加定製錯誤資訊非常容易。首先,編寫自己的 web頁面,它可以是任何類型的檔案:.htm,.aspx,.asp,等等。然後在應用程式的config.web檔案中修改配置資訊,讓它指向這個檔案。
舉例說明,以下這個配置資訊說明在發生了任何未能預定處理錯誤的情況下,瀏覽器都應該被重新導向到“ErrorPage.aspx”頁面:
需要在web.config中配置:
<!--配置自訂錯誤,未關閉,開啟,詳細資料-->
<system.web>
<customErrors mode="On" defaultRedirect="~/ErrorPage.aspx">
<error statusCode='500' redirect='~/Erorr500.htm'/>
<error statusCode='403' redirect='~/Erorr403.htm'/>
<error statusCode='404' redirect='~/Erorr404.htm'/>
<error statusCode='400' redirect='~/Erorr505.htm'/>
</customErrors>
</system.web>
“on”:意思是總是發出定製錯誤頁面;
“off”:意思是從不發出定製錯誤頁面(你總是看到原始的錯誤資訊);
“remoteonly”:意思是只有當遠程瀏覽器點擊網站時才發出定製錯誤頁面(而在實際機器上點擊網站的開發人員看到的是詳細的錯誤資訊)。
2 在Global.asax檔案中添加應用出錯代碼,寫入系統記錄檔
protected void Application_Error(Object sender, EventArgs e)
{
Exception LastError = Server.GetLastError();
String ErrMessage = LastError.ToString();
String LogName = "MyLog";
String Message = "Url " + Request.Path + " Error: " + ErrMessage;
if (!EventLog.SourceExists(LogName))
{
EventLog.CreateEventSource(LogName, LogName);
}
EventLog Log = new EventLog();
Log.Source = LogName;
Log.WriteEntry(Message, EventLogEntryType.Information, 1);
Log.WriteEntry(Message, EventLogEntryType.Error, 2);
Log.WriteEntry(Message, EventLogEntryType.Warning, 3);
Log.WriteEntry(Message, EventLogEntryType.SuccessAudit, 4);
Log.WriteEntry(Message, EventLogEntryType.FailureAudit, 5);
}
原帖地址:http://www.cnblogs.com/innhyul/archive/2010/03/26/1696947.html