.net自定義錯誤頁面實現:其一、通過節點system.web新增customErrors配置節點實現、其二、通過節點system.webServer新增httpErrors配置節點實現 ...
前言:
在實際的web開發中,經常會遇到以下情況,導致給用不好的體驗:
a、程式未處理的異常,直接輸出顯示到用戶頁面
b、用戶訪問的資源不存在,直接顯示系統預設的404頁面
c、其它以下請求錯誤狀態的系統預設頁面(403等)
為了給用戶友好的體驗,在實際項目開發中,
需要對系統會不同的異常定製相應的友好提示頁面
.net中自定義異常頁面的重定向都是通過web.config配置頁面配置實現,
其具體的實現方式有兩種方式:
其一、通過節點system.web新增customErrors配置節點實現
IIS環境需求:IIS7、IIS7+、IIS7以前版本
作用對象:作用於Asp.Net級別的錯誤處理程式
也就是說,對於(.html/.js)等靜態資源不起作用
實現方式:
<system.web> <customErrors mode="On" defaultRedirect="ApplicationErroy.aspx"> <error statusCode="403" redirect="/ErrorPage/403.html"/> <error statusCode="404" redirect="/ErrorPage/404.html"/> <error statusCode="500" redirect="/ErrorPage/500.html"/> </customErrors> </system.web>
其二、通過節點system.webServer新增httpErrors配置節點實現
IIS環境需求:IIS7、IIS7+
作用對象:作用於IIS級別的錯誤信息處理程式
也就是說,asp.net程式異常和靜態資源異常都處理
實現方式:
<system.webServer> <httpErrors errorMode="Custom" existingResponse="Replace"> <clear /> <error statusCode="404" responseMode="ExecuteURL" path="/ErrorPage/404.html" /> <error statusCode="403" responseMode="ExecuteURL" path="/ErrorPage/403.html" /> <error statusCode="500" responseMode="Redirect" path="/ErrorPage/500.html" /> </httpErrors> </system.webServer>
應用總結:
通過上面的描述,在實際開發中,只要環境時IIS7+,那麼完全採用第二種方式即可