1. 程式人生 > >ASP.NET錯誤頁

ASP.NET錯誤頁

錯誤 nbsp fig 發生 不同 配置 服務 bsp 用戶

當頁面發生錯誤的時候,ASP.Net會將錯誤信息展示出來,這樣一來不好看,二來會泄露網站的內部
實現信息,給網站帶來安全隱患,因此需要定制錯誤頁,發生錯誤時顯示開發人員定制的頁面
404頁面放點廣告也是好的嘛
配置web.config,配置customErrors區域:

<customErrors mode="On" defaultRedirect="MyErrorPage.aspx"> 
   <error statusCode="403" redirect="NoAccess.htm" /> 
   <error statusCode="404" redirect="FileNotFound.htm" /> 
 </customErrors> 

mode三個可選值:

On:總是顯示定制錯誤頁面;

Off:不顯示定制錯誤界面,直接顯示調用堆棧等異常信息;
Remoteonly:對於本機的訪問顯示調用堆棧等異常信息,對於外部用戶的顯示定制錯誤頁面

一般設置為RemoteOnly,這樣發生錯誤的話,管理員可以在服務器的瀏覽器中看詳細錯誤信息,
普通用戶看不到.學習演示的時候mode設置為On,否則看不到定制頁。可以在定義錯誤頁中判斷
Request.UserHostAddress來設置某些ip看到異常信息,可以讀取Session如果是管理員則可以看異常信息

error子元素設定對於不同的狀態碼使用不同的錯誤頁,很多網站都把404做一個特殊的錯誤頁
沒有單獨設置的狀態碼錯誤則顯示defaultRedirect中指定的頁面
錯誤頁即可以使用htm頁面,也可以使用aspx頁面
在aspx頁面中可以用HttpContext.Current.Server.GetLastError()拿到異常對象。
一般不要把異常信息顯示給用戶,而是使用後面講的Log4Net等將異常記錄到系統日誌。
如果要在錯誤頁面中拿到異常對象,必須在customErrors中設置redirectMode="ResponseRewrite",
因為默認是客戶端重定向,在錯誤頁面中就拿不到異常對象了

ASP.NET錯誤頁