asp.net 自定義錯誤頁
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);
}
原帖地址:https://www.cnblogs.com/innhyul/archive/2010/03/26/1696947.html
最後更新:2017-04-02 22:16:10