2013-11-26 64 views
0

趕上WCF服務拋出的異常裏面我的Form_Load background_worker_DoWork我使用WCF服務電話哪裏得到countAllBooksValue開始。在服務我拋出故障異常,其中該異常應該由客戶來逮住,但事實並非如此。如何在客戶端

客戶端

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) 
     { 
      try 
      { 
       int countAllBooks = BookAgent.CountAllBooks(); 
       e.Result = countAllBooks; 
      } 
      catch (FaultException ex) 
      { 
       MessageBox.Show(ex.Message);        
      }    
     } 

服務端

public int CountAllBooks() 
{ 
    throw new FaultException("Something bad happened!"); 
} 

問題是:爲什麼這樣的FaultException不被逮住的客戶端?

+0

BackgroundWorker_DoWork不是UI線程,其實我覺得它可能會釣到,只是不顯示 - 你試過調試? –

+0

只是試圖調試,catch塊根本hitted,異常是在服務端拋出,而不是派遣回客戶端 – user2783193

+0

你已經添加了'FaultContract'屬性你的合同? –

回答

0

嘗試設置IncludeExceptionDetailInFaults屬性:

[ServiceBehavior(IncludeExceptionDetailInFaults = true)]