国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

在ASP.NET中的全局異常處理_.Net教程

2024-07-10 12:50:46
字體:
來源:轉載
供稿:網友

推薦:淺析asp.net 和 access 聯合開發的分頁類
以下為引用的內容:using System;using System.Collections.Generic;using System.Text;using System.Data;namespace pager{public class Pager

在我們寫程序時偶爾會由于疏忽導致有些異常沒有進行處理。如果將異常詳細信息提示給用戶會帶來不安全因素,如果不提示詳細信息又會給用戶報告異常帶來麻煩。雖然可以通過配置customErrors mode來實現只有管理員可以查看錯誤,但發現問題的時間可能會比較長。通過全局異常處理就可以在異常發生時立即記錄異常,或直接發送郵件向管理員報告,以在最快的速度發現并處理異常。

要為ASP.NET應用程序添加全局異常處理主要是添加HttpApplication的Error事件的處理。這與在BeginRequest事件中進行URL重寫方法類似。先建一個繼承System.Web.IHttpModule的類。然后添加Init方法和ShowError方法。

以下為引用的內容:

  namespace Snowdream

  {

  public class HttpModule : System.Web.IHttpModule

  {

  public void Init(System.Web.HttpApplication context)

  {

  context.Error = new EventHandler(ShowError);

  }

  private void ShowError(object sender, EventArgs e)

  {

  //在這里進行異常處理

  }

  }

  }

然后還需要配置web.config的httpModules使之生效.

我現在比較喜歡的做法是將異常的詳細信息記錄在數據庫中,然后返回一個編號,再將頁面重定向到自己寫的錯誤提示頁,將這個編號提示給用戶,用戶如果要報告錯誤只需提供該錯誤編號,管理員就能在后臺中找到錯誤的詳細信息并進行修改。

下面說2個我在做全局異常處理時碰到的問題及我的解決方案

第一個是獲取異常hResult,由于是私有屬性不能直接訪問,解決方法是通過(int)System.Runtime.InteropServices.Marshal.GetHRForException(exception)來獲取

第二個問題是記錄了很多不是由于ASP.NET應用程序引發的錯誤,比如用戶鍵入一個錯誤的URL,異常處理系統會記錄一個“文件不存在。”的錯誤,而這些錯誤記錄不僅不能真正反映出ASP.NET應用程序的異常反而會給管理員帶來更多麻煩。我的解決方法是通過判斷if(exception is System.Web.HttpException)來過濾這些HttpException。

分享:在ASP.Net Ajax中調用WebService
今天我想實現利用JavaScript調用WebService我首先就想到了ASP.Net Ajax 因為微軟的東西用著方便,我從網上看了看,這東西好多人都寫了,我就從官方找了個Demo下了看看源代碼,感覺沒什么特殊的

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汨罗市| 通化市| 盐边县| 黑龙江省| 岢岚县| 遂溪县| 胶州市| 合肥市| 吴川市| 石狮市| 公安县| 腾冲县| 凤台县| 沐川县| 虹口区| 青神县| 富平县| 龙井市| 昭觉县| 容城县| 成武县| 邳州市| 临朐县| 耒阳市| 科尔| 襄汾县| 司法| 通化县| 沁水县| 奈曼旗| 元氏县| 肃北| 且末县| 新和县| 襄城县| 嫩江县| 贵定县| 连江县| 年辖:市辖区| 尉犁县| 延庆县|