If the WCF service throws a FaultException , the client changes its state to CommunicationState.Faulted . If you then try to use this client object to invoke another service operation, you will receive an error message
"The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state."
You can also get this error if you try to call the Close() method on a failed client, I cannot remember.
You can check the status of your client object by specifying the State property. If you want to close your client correctly (what you should do), you need to call the Abort() method if the client is in the Faulted state and the Close() method if the client is in any other state.
Graham clark
source share