我在一個相當大的網站工作。我們目前有四個Web服務器和一個活動被動的db集群,運行ASP.NET 2.0和C#。目前,我們的異常處理沒有捕獲到正確的異常。我聽說這是因為Server.GetLastError()
不是線程安全的(注意:我們目前不使用Server.GetLastError().GetBaseException()
,這可能是我們沒有得到正確錯誤的原因)。
我们正在启动一个项目来捕获确切的异常,以便我们可以实际看到错误的根本原因,我正在努力寻找最好的方法来实现它。
我们的选项是:
- Go through all of our classes/methods(hundreds, if not thousands) to add try/catch/finally blocks to trap the correct exception.
- Figure out a way to properly handle the exceptions in the global.asax.
那么,我想我的问题是:
- Is
Server.GetLastError()
thread safe? - If two exceptions are thrown at the same time, will both be logged?
- Is there a better way to handle this than what I have listed?