2010-06-07 38 views
0

我有一个相当大量的.NET服务构建的Web服务库,我使用它作为我们公司网站的数据模型。在大多数.NET应用程序中,我使用Global ASAX文件来分析,记录和创建应用程序抛出的所有异常的错误报告。.NET Web服务中错误处理的策略

全球ASAX不可用于Web服务,所以我很好奇人们为解决此限制而采取了哪些其他策略。目前,我只是做一些沿着这些路线:

<WebMethod()> _ 
Public Function MyServiceMethod(ByVal code As Integer) As String 
    Try 
     Return processCode(code) 
    Catch ex As Exception 
     CustomExHandler(ex) 'call a custom function every time to log exceptions 
     Return errorObject 
    End Try 
End Function 

人有做的事情除了调用内捕获功能的更好的办法?

+0

考虑转移到WCF,该WCF具有[内置的面向方面的解决方案](http://msdn.microsoft.com/zh-cn/library/system.servicemodel.description.iservicebehavior.aspx)的问题。 – ladenedge 2010-06-07 16:47:20

回答

1

假设你不能采取ladenedge建议,http://msdn.microsoft.com/en-us/library/ds492xtk(VS.71).aspx表明没有办法使用全局错误处理,这让你坚持当前的方法:

“的Web应用程序可以由多个的XML Web服务,但Global.asax文件中的Application_Error事件不能用于全局异常处理。XML Web服务的HttpHandler消耗了在执行XML Web服务时发生的任何异常,并将其变为SOAP错误之前Application_Error事件被调用。“

即使您有很多功能,至少您会将例外调度到常见的位置,而不是使用剪切和粘贴编程。它看起来像你的方法可以符合DRY原则。换句话说,'你很好!'