標籤:
當頁面發生錯誤的時候,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錯誤頁