.NET Web服务中的错误处理策略

时间:2010-06-07 15:50:04

标签: .net web-services architecture soap error-handling

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

全球ASAX不适用于网络服务,所以我很好奇人们为解决这一限制而提出的其他策略。目前我只是沿着这些方向做点什么:

<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

除了在Catch中调用函数之外,还有更好的方法吗?

1 个答案:

答案 0 :(得分: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服务时发生的任何异常正在执行并在调用Application_Error事件之前将其转换为SOAP错误。“

即使你有很多功能,至少你要将例外发送到一个普通的地方,而不是使用剪切和粘贴编程。看起来您的方法符合DRY原则。换句话说,'你很好!'