2010-06-07 51 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原則。換句話說,'你很好!'