If you have ever used the using statement to create a WCF client proxy before, you would have no doubt encountered problems of not getting your Service Exceptions propagating to the client. When exceptions are raised from service, your client proxy goes into a Faulted state, and attempting to close/dispose the proxy object (from the using statement) will result in WCF raising another Exception.
If you’re aware of this, you would have written code somewhat similar to this, to do proper cleanup.
SomeClient client = new SomeClient();
try
{
client.SomeMethod();
client.Close();
}
catch (CommunicationException)
{
client.Abort();
}
catch (TimeoutException)
{
client.Abort();
}
catch (Exception)
{
client.Abort();
throw;
}



