淺析ASP.NET全局異常處理_.Net教程
推薦:談.Net平臺下的分布式緩存設計緩存真是個好東西,在大型的系統中可以有效地提升系統的速度,此乃廢話就不多說了,在.Net 平臺下面我把緩存從功用大致分為兩類,數據對象緩存和頁面輸出緩存。對于數據緩存來講是由System.Web.Caching.Cache這個類來實現,可以從上下文對象Context.Cache 來
在我們寫程序時偶爾會由于疏忽導致有些異常沒有進行處理。如果將異常詳細信息提示給用戶會帶來不安全因素,如果不提示詳細信息又會給用戶報告異常帶來麻煩。雖然可以通過配置customErrors mode來實現只有管理員可以查看錯誤,但發現問題的時間可能會比較長。通過全局異常處理就可以在異常發生時立即記錄異常,或直接發送郵件向管理員報告,以在最快的速度發現并處理異常。
要為ASP.NET應用程序添加全局異常處理主要是添加HttpApplication的Error事件的處理。這與在BeginRequest事件中進行URL重寫方法類似。先建一個繼承System.Web.IHttpModule的類。然后添加Init方法和ShowError方法。
以下為引用的內容: namespace Snowdream |
然后還需要配置web.config的httpModules使之生效。
我現在比較喜歡的做法是將異常的詳細信息記錄在數據庫中,然后返回一個編號,再將頁面重定向到自己寫的錯誤提示頁,將這個編號提示給用戶,用戶如果要報告錯誤只需提供該錯誤編號,管理員就能在后臺中找到錯誤的詳細信息并進行修改。
下面說2個我在做全局異常處理時碰到的問題及我的解決方案:
第一個是獲取異常hResult,由于是私有屬性不能直接訪問,解決方法是通過(int)System.Runtime.InteropServices.Marshal.GetHRForException(exception)來獲取;
第二個問題是記錄了很多不是由于ASP.NET應用程序引發的錯誤,比如用戶鍵入一個錯誤的URL,異常處理系統會記錄一個“文件不存在。”的錯誤,而這些錯誤記錄不僅不能真正反映出ASP.NET應用程序的異常反而會給管理員帶來更多麻煩。我的解決方法是通過判斷if(exception is System.Web.HttpException)來過濾這些HttpException。
分享:ADO.NET2.0最新十大特性篇文章概述了.NET Framework 2.0里的ADO.NET2.0的最新特性。在以下敘述中將附帶一些簡單的例子來討論這些特性的細節。以下便是ADO.NET新增的特性: 1. 批量復制操作(Bulk Copy Operation) 將數據從一個數據源批量復制到另一個數據源是ADO.NET 2.0的一個新特
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發送Email實例(可帶附件)
- js實現廣告漂浮效果的小例子
- asp.net Repeater 數據綁定的具體實現
- Asp.Net 無刷新文件上傳并顯示進度條的實現方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數據庫(連接字符串的配置及獲取)
- asp.net頁面傳值測試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現分頁示例代碼
- 相關鏈接:
- 教程說明:
.Net教程-淺析ASP.NET全局異常處理。