title: WCF Throws FaultException, client catches Exception but loses all information
body: <p>I am making an Async call from a client to a WCF Service.  The service is throwing a FaultException exception.  When I catch the exception in my Client "Completed" event handler, it catches the exception, but loses all information about it.  All I get is a generic type Exception with this error message: "CommunicationException: The remote server returned an error: NotFound"). I have includeExceptionDetailInFaults set to true. </p>
  
  <p>Why can't I catch the FaultException? </p>
  
  <p>Thank you for your help.</p>
  
  <p>Here is the pertinent code:</p>
  
  <p>WCF Service code</p>
  
  <pre><code>  [WebMethod]
      [FaultContract(typeof(DivideByZeroException))]
      public int CountResults(FilterArgs args)
      {
        ...
       DivideByZeroException divByZero = new DivideByZeroException();
       throw new FaultException&lt;DivideByZeroException&gt;(divByZero);
  </code></pre>
  
  <p>Client code</p>
  
  <pre><code>    void seasClient_CountResultsCompleted(object sender, CountResultsCompletedEventArgs e)
      {
          try
          {
            ...
          }
          catch (FaultException ex)
          {
              MessageBox.Show("FaultException" + ex.Message);
          }
          catch (TimeoutException ex)
          {
              MessageBox.Show("TimeoutException" + ex.Message);
          }
          catch (CommunicationException ex)
          {
              MessageBox.Show("CommunicationException" + ex.Message);
          }
          catch (Exception ex)
          {
              MessageBox.Show("Exception" + ex.Message);
          }
  </code></pre>
  
  <p>and my e.Error.ToString() message:</p>
  
  <pre><code>System.ServiceModel.CommunicationException: The remote server returned an error: NotFound. ---&gt; System.Net.WebException: The remote server returned an error: NotFound. ---&gt; System.Net.WebException: The remote server returned an error: NotFound.
     at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
     at System.Net.Browser.BrowserHttpWebRequest.&lt;&gt;c__DisplayClassa.&lt;EndGetResponse&gt;b__9(Object sendState)
     at System.Net.Browser.AsyncHelper.&lt;&gt;c__DisplayClass4.&lt;BeginOnUI&gt;b__0(Object sendState)
     --- End of inner exception stack trace ---
     at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
     at System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
     at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result)
     --- End of inner exception stack trace ---
     at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
     at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
     at System.ServiceModel.ClientBase`1.ChannelBase`1.EndInvoke(String methodName, Object[] args, IAsyncResult result)
     at WebAnalysis.SeasService.SeasServiceSoapClient.SeasServiceSoapClientChannel.EndCountResults(IAsyncResult result)
     at WebAnalysis.SeasService.SeasServiceSoapClient.WebAnalysis.SeasService.SeasServiceSoap.EndCountResults(IAsyncResult result)
     at WebAnalysis.SeasService.SeasServiceSoapClient.EndCountResults(IAsyncResult result)
     at WebAnalysis.SeasService.SeasServiceSoapClient.OnEndCountResults(IAsyncResult result)
     at System.ServiceModel.ClientBase`1.OnAsyncCallCompleted(IAsyncResult result)
  </code></pre>