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

时间:2009-05-06 11:04:26

标签: c# exception capture

我有一个C#Web服务应用程序,我想在其中捕获从应用程序抛出的所有未处理的异常。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

由于某种原因,Web服务不会触发Application_Error事件(请参阅other question)。杰夫阿特伍德先生本人已经发布了一些建议on the coding horror blog

他写道:

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

PostSharp

Spring.Net