捕获当前线程中的所有异常

时间:2012-10-26 13:52:43

标签: c# asp.net wcf exception-handling

在我的Web应用程序中,我有单向异步WCF服务。在这个服务中,我想捕获所有异常,就像我在global.asax Application_Error中所做的那样。 我试图处理这些事件:

AppDomain.CurrentDomain.UnhandledException += (s,e) => { //some logic };
AppDomain.CurrentDomain.FirstChanceException += (s,e) => { //some logic };

甚至尝试过:

//this one is for Win Forms Application
Application.ThreadException += (s,e) => { //some logic };

//this one is for Web Application
HttpContext.Current.ApplicationInstance.Error += (s,e) => { //some logic };

但是没有达到这些处理程序。

任何想法,我还能尝试什么?

2 个答案:

答案 0 :(得分:2)

如果将这些代码行放入网页,它们将会丢失。为什么?

因为网页的使用寿命有限。为了使您的事件处理能够生存,您需要将其放入全局asax文件中。

答案 1 :(得分:2)

WCF允许您将实现IErrorHandler的对象插入Dispatcher的Errorhandler中。

MSDN page包含示例代码。