2013-11-26 1 views
0

내 Form_Load background_worker_DoWork 내부에서 countAllBooksValue를 얻기 위해 wcf 서비스 호출을 사용하고 있습니다. 서비스에서 예외 예외가 클라이언트에 의해 catch되어야하는 오류 예외를 던지고 있지만 그것을 않습니다.클라이언트 측에서 예외를 던진 wcf 서비스를 잡는 방법

클라이언트 측

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!"); 
} 

질문 :이 오류 예외가 클라이언트에 의해 사로 잡았되지 않는 이유는 무엇입니까?

+0

BackgroundWorker_DoWork는 UI 스레드, 나는 실제로는 단지 표시되지, 사로 잡았 될 수 있다고 생각하지 않습니다 - 디버깅을 시도? –

+0

방금 ​​디버깅을 시도했는데 catch 블록이 전혀 작동하지 않고 서비스 측면에서 예외가 발생하고 클라이언트에 다시 전달되지 않습니다 – user2783193

+0

계약에'FaultContract' 속성을 추가 했습니까? –

답변

0

봅니다 IncludeExceptionDetailInFaults 속성을 설정합니다 :

[ServiceBehavior(IncludeExceptionDetailInFaults = true)] 
관련 문제