Asp.net 为什么global.asax应用程序_Error方法不捕获ASMX服务引发的异常?

Asp.net 为什么global.asax应用程序_Error方法不捕获ASMX服务引发的异常?,asp.net,error-handling,asmx,Asp.net,Error Handling,Asmx,以及如何修复它。我想记录每个抛出的异常,以便于维护。这是.Net中的一个已知问题-web服务永远不会触发应用程序错误。不确定是否有任何原因是出于设计,但它就是不起作用 杰夫·阿特伍德(Jeff Atwood)几年前对此有过一个(和)想法,有以下想法: 在每个web服务方法周围放置一个try-catch块 使用外观设计模式,并在父对象中包含try-catch 编写自定义SOAP扩展或HTTPModule 我唯一关心的是第一个,尽管这似乎需要做很多工作。如果有人想在这个主题上寻找微软的话,请参阅

以及如何修复它。我想记录每个抛出的异常,以便于维护。

这是.Net中的一个已知问题-web服务永远不会触发应用程序错误。不确定是否有任何原因是出于设计,但它就是不起作用

杰夫·阿特伍德(Jeff Atwood)几年前对此有过一个(和)想法,有以下想法:

  • 在每个web服务方法周围放置一个try-catch块
  • 使用外观设计模式,并在父对象中包含try-catch
  • 编写自定义SOAP扩展或HTTPModule

我唯一关心的是第一个,尽管这似乎需要做很多工作。

如果有人想在这个主题上寻找微软的话,请参阅这里:“

这是相关章节:

Web应用程序可以由多个XML Web服务组成,但是Global.asax文件中的应用程序错误事件不能用于全局异常处理。XML Web服务的HttpHandler会使用在执行XML Web服务时发生的任何异常,并在调用应用程序错误事件之前将其转换为SOAP错误

更好::

注: 如果您的Web应用程序包含XML Web服务,您不能使用该错误 事件的全局异常处理 这些服务。的HTTP处理程序 XML Web服务使用任何 XML Web中发生的异常 服务并将其转换为SOAP 在调用错误之前发生错误。 要处理XML Web服务异常, 构建SOAP扩展以处理Web 自定义全局数据库中的服务异常 异常处理程序。更多 有关详细信息,请参阅