在一些網站中,當網絡地址發生錯誤時,通常會自動跳轉到一個頁面,並在該頁面顯示錯誤信息,此功能葉可以通過配置Web.Config文件配置實現。例如訪問者在訪問網站時出現錯誤,程序將跳轉到默認頁面error.aspx。
<customErrors>節點
<customErrors>節點用於定義一些自定義錯誤信息的信息。此節點有Mode和defaultRedirect兩個屬性,其中defaultRedirect屬性是一個可選屬性,表示應用程序發生錯誤時重定向到的默認URL,如果沒有指定該屬性則顯示一般性錯誤。Mode屬性是一個必選屬性,它有三個可能值,它們所代表的意義分別如下:
On 表示在本地和遠程用戶都會看到自定義錯誤信息。
Off 禁用自定義錯誤信息,本地和遠程用戶都會看到詳細的錯誤信息。
RemoteOnly 表示本地用戶將看到詳細錯誤信息,而遠程用戶將會看到自定義錯誤信息。
這裏有必要說明一下本地用戶和遠程用戶的概念。當我們訪問asp.net應用程時所使用的機器和發佈asp.net應用程序所使用的機器爲同一臺機器時成爲本地用戶,反之則稱之爲遠程用戶。在開發調試階段爲了便於查找錯誤Mode屬性建議設置爲Off,而在部署階段應將Mode屬性設置爲On或者 RemoteOnly,以避免這些詳細的錯誤信息暴露了程序代碼細節從而引來黑客的入侵。
<error>子節點
在<customErrors>節點下還包含有< error>子節點,這個節點主要是根據服務器的HTTP錯誤狀態代碼而重定向到我們自定義的錯誤頁面,注意要使<error>子節點下的配置生效,必須將<customErrors>節點節點的Mode屬性設置爲“On”。下面是一個例子:
<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="403.htm" />
<error statusCode="404" redirect="404.htm" />
</customErrors>