我有一个C#Web服务应用程序,我想在其中捕获从应用程序抛出的所有未处理的异常。
我该怎么做?
答案 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)