我在一個相當大的網站上工作。我們目前有4個Web服務器和一個運行ASP.NET 2.0並使用C#的活動被動數據庫羣集。目前,我們的異常處理不會捕獲正在拋出的正確異常。我聽說這是因爲Server.GetLastError()
不是線程安全的(注意:我們目前不使用Server.GetLastError().GetBaseException()
這可能是我們爲什麼沒有得到正確的錯誤)。將全局異常處理添加到ASP.NET
我們正在開始一個項目來捕獲確切的異常,所以我們實際上可以看到錯誤的根本原因,並試圖找到最好的方法來做到這一點。
我們的選擇是:
- 去通過我們所有的類/方法(數百,甚至數千)嘗試/ catch/finally塊添加到陷阱的正確例外。
- 找出一種方法來正確處理global.asax中的異常。
所以我想我的問題是:
- 是
Server.GetLastError()
線程安全的? - 如果同時拋出兩個異常,是否都會被記錄?
- 有沒有比我列出的更好的方式來處理這個問題?
這怎麼比在Global.asax中的Application_Error方法有什麼不同? – user13053 2009-01-14 18:10:02