Catches communication exception instead of custom fault exception - WCF

Posted by Ismail S on Stack Overflow See other posts from Stack Overflow or by Ismail S
Published on 2010-04-26T09:05:15Z Indexed on 2010/04/26 9:23 UTC
Read the original article Hit count: 837

Filed under:
|

On Server I'm throwing the exception like this.

catch(SqlException exception)
{
  if (exception.Message.Contains("Custom error from stored proc"))
  {
    //Exception to be thrown when authentication fails.
    throw new FaultException<MyServiceFault>(new MyServiceFault { MessageText = exception.Message });
  }
}

And on client end I'm catching the exception

catch(FaultException<MyServiceFault> faultException)
{

}

Here is my MyServiceFault

[DataContract]
public class MyServiceFault  
{
  [DataMember]
  public string MessageText { get; set; }

  [DataMember]
  public Guid Id { get; set; }
}

The problem is that on client, it doesn't go to MyServiceFault catch block instead it goes to communication exception catch block and throws this error

System.ServiceModel.CommunicationException: The underlying connection was closed: The connection was closed unexpectedly. ---> System.Net.WebException

I've also decorated my service method [FaultContract(typeof(MyServiceFault))] in the interface which is implemented by my service.

In my web.config servicebehaviour tag consist <serviceDebug includeExceptionDetailInFaults="true" />

Any idea where I'm going wrong

© Stack Overflow or respective owner

Related posts about wcf

Related posts about exception-handling