2012-04-11 109 views
2

是否有任何方法來捕獲和記錄從WCF服務的構造函數拋出的異常?由WCF服務構造函數拋出的日誌異常?

創建自定義IEndpointBehavior與自定義IErrorHandler似乎趕上所有例外除了在服務施工期間拋出。 (請糾正我,如果我錯了。)

我可以從HTTP響應中看到,這種情況最終會生成System.ServiceModel.ServiceActivationException,但如果我可以從原始異常中註銷詳細信息將會很有幫助。

+0

爲什麼會在構造函數中出現異常?你在構造函數中做什麼? – 2012-04-11 19:48:23

+2

@KirkWoll我不知道。這就是爲什麼我要記錄它們。 – 2012-04-11 19:54:30

+0

我問,因爲我沒有在我的構造函數中包含任何行爲。因此,對我來說,拋出異常是不可能的。我很驚訝你在構造函數中有行爲。另外,'ServiceActivationException'通常是由於配置錯誤。換句話說,這意味着你的設置被破壞了,而且通常不值得記錄。 – 2012-04-11 19:56:39

回答

0

您將需要創建一個類來記錄異常,在構造函數中初始化它並在發生異常時調用它。下面是一個非常簡單的例子:

public class MyWcfService : IMyWcfService 
{ 
    private readonly IExceptionLogger_ exceptionLogger; 

    public MyWcfService() 
    { 
     // Initialize dependencies 
     _exceptionLogger = new ExceptionLogger(); 

     try 
     {   
      // Code here that throws an exception 
     } 
     catch (Exception ex) 
     { 
      _exceptionLogger.LogException(ex); 
     } 

    } // end constructor 

    // Other methods here 

} // end class 
相關問題