重定向到自定義錯誤頁面
網站通常包含諸多頁面,因此很難保證每個頁面在運行時都不會發生錯誤。當頁面發生錯誤時會產生詳細的錯誤信息,這些信息對於普通訪問者來說晦澀難懂,因此需要在客戶端以一個友好的頁面向用戶提示錯誤信息。此時,可以通過配置“Web.config”文件,在頁面發生錯誤時將程序重定向到自定義的錯誤頁面。
在“Web.config”文件中,配置連接錯誤頁面是在<customErrors></customErrors>節點中完成的,其中可以配置的屬性
說 明
mode
指定是否啟用或禁用自定義錯誤,包括:On(啟用自定義錯誤)、Off(禁用自定義錯誤)、RemoteOnly(服務器端顯示ASP.NET給出的詳細錯誤信息,而客戶端顯示自定義的錯誤頁面)
defaultRedirect
指定頁面發生錯誤時,重定向到的默認頁面地址
例如,下面的代碼演示了頁面發生錯誤時,將程序重定向到error.aspx:
<customErrors mode="On" defaultRedirect ="error.aspx"></customErrors>
在<customErrors>節點下還可以設置子節點<error>,通過該子節點可以將HTTP的狀態代碼與自定義錯誤頁關聯起來。此時,在子節點<error>中可以設置的屬性
說 明
statusCode
指定發生的錯誤HTTP狀態代碼
redirect
指定發生錯誤時重定向到的頁面地址
例如,下面的代碼顯示了在發生401錯誤(未授權)和404錯誤(未找到)時,分別將重定向到自定義的錯誤頁面Unauthorized.aspx和FileNotFound.aspx:
<customErrors mode="RemoteOnly" defaultRedirect="error.aspx">
<error statusCode="401" redirect="Unauthorized.aspx" />
<error statusCode="404" redirect="FileNotFound.aspx " />
</customErrors>