【发布时间】:2010-10-24 03:59:06
【问题描述】:
我有一个 C# WebService 应用程序,我想在其中捕获从应用程序抛出的所有未处理的异常。
我该怎么做?
【问题讨论】:
我有一个 C# WebService 应用程序,我想在其中捕获从应用程序抛出的所有未处理的异常。
我该怎么做?
【问题讨论】:
由于某些原因,Web 服务不会触发 Application_Error 事件(请参阅other question)。 Jeff Atwood 先生本人也发布了一些建议on the coding horror blog。
他写道:
* 在每个 WebService 方法周围放置一个 try..catch。这些方法往往是其他类的包装器,所以这并不像听起来那么糟糕,但它仍然不是很好。
* 使用 Facade 设计模式从父对象派生所有对象……基本上是在 .Execute 方法上执行 try..catch。嗯,谢谢,但不,谢谢。
* 编写自定义 SOAP 扩展或 HttpModule。这听起来很合理,但……很难。如果它是一个很酷、很重要的扩展或 HttpModule,不是已经有人写了吗?
【讨论】:
一种方法是订阅App_Start 处理程序中某处的AppDomain.UnhandledException 事件。
【讨论】:
【讨论】: