使用WebService自动捕获所有未处理的exception

我有一个C#WebService应用程序,我想在其中捕获从应用程序抛出的所有未处理的exception。

我怎样才能做到这一点?

由于某种原因,Web服务不会触发Application_Error事件(请参阅其他问题 )。 杰夫阿特伍德先生本人已经在编码恐怖博客上发布了一些建议。

他写:

*在每个WebService方法周围放置一个try..catch。 这些方法往往是围绕其他类的包装器,所以这并不像听起来那么糟糕,但它仍然不好。
*使用Facade设计模式从父对象派生所有对象..基本上在.Execute方法上执行try..catch。 呃,谢谢,不,谢谢。
*编写自定义SOAP扩展或HttpModule。 这听起来很合理,但很难。 如果它是如此酷,重要的扩展或HttpModule,是否有人已经写过它?

一种方法是在App_Start处理程序中的某处订阅AppDomain.UnhandledException事件。

也许是面向方面的方法的工作。 一些例子;

PostSharp

Spring.Net