99久久国产精品,欧美久久精品免费,一97日本道伊人久久综合影院,精品乱码久久久久久久
微信咨詢
QQ咨詢
服務熱線
服務熱線:0851-83890865
移動熱線:18908513754
TOP

ASP.NET MVC全局異常處理和捕獲的思路

發布時間:2016-07-27 瀏覽:

這幾天稍微研究了下ASP.NET MVC的全局異常處理以及捕獲,相比ASP.NET Web Form,ASP.NET MVC的處理方式有所不同,以往是通過注冊Global.asax文件中的Application_Error事件進行全局異常捕獲,現在MVC可以使用強大的過濾器進行自定義錯誤的處理。本文作為學習筆記,將ASP.NET MVC中,我已知的幾種全局異常捕獲及處理的思路進行整理和對比分析。

此方法對于Web Form和MVC來說都是通用的,在ASP.NET中,只要網站程序拋出未捕獲的異常都會觸發Application_Error事件。我們在事件中通過Server.GetLastError()方法獲取Exception對象(可轉化成HttpException對象,以獲取相關的HTTP錯誤代碼)。

使用此方法一定要把GlobalFilter全局過濾器中的HandleErrorAttribute注冊取消掉,也可以將配置文件中的customErrors節點關閉,否則HTTP 500的錯誤將不會被Application_Error事件捕獲。

還要注意一點,如果想在事件中跳轉到自己定義的錯誤頁面,那么在響應輸出之前一定要記得調用 Server.ClearError()方法清除異常。否則會有下面兩種情況,如果自定義錯誤關閉,會顯示錯誤黃頁(即詳細異常信息頁面),如果沒關閉則會跳轉到自定義錯誤定義的頁面:

效果如下:


小結:這種方法有非常好的兼容性,可以在Web Form和MVC中通用。另外一點是SEO優化十分友好,我們可以對HTTP錯誤碼進行控制,畢竟customErrors是使用302跳轉,是十分不利于SEO的。此外要注意在MVC中Server.Transfer不支持路由!

從此的開發中,又跳過一個小坑!。越努力,越幸運!!!


0
該內容對我有幫助
閱讀推薦
在線客服系統 久久这里只精品国产免费,欧美久久精品免费,中文国产成人精品久久下载,久久综合九色综合婷婷 97精品夜夜爽久久 综合久久给合久久狠狠狠98色 国产成人久久精品,流白浆 久久久久综合欧美 五月伊人久久大香线蕉 做性久久久久久 97久久婷婷人人澡人人 国产精品第一二三区久久蜜芽 精品久久久久中文字幕app 国内精品久久久久久精品久久 久久久久精品国产 天天爽夜夜爽欧美久久aa躁免费 色综合久久综合中文小说 伊人依成久久人综合网下载 国内精品久久久久a级 亚洲精品久久九九热 久久成人精品中文字幕 国产一级做a爰片久久毛片 天天摸天天碰久久久久 欧美精品九九99久久在免费线 国内精品久久久久a级 久久一日本道色综合久久大香 久久国产成人福利播放不卡 九九热九热久久久免费精