WCF Faulted State Question

I'm calling a WCF service with a windows application. If the service errors (say you throw an exception from the service), it goes into the faulted state and I can't use the proxy anymore for calls.

In light of realizing that your proxy can only fault once, and not wanting to do one of the two things below (from Jeff's post):

  1. Subscribe to the Faulted event of the communication object. 
  2. Check the State property of the communication object before executing a service operation.
I will add option three: 
3. ReInitialize your communication object for every call.


With option three we would be using a static gateway and setting the service channel and proxy back up every time, so at least it would be centrally managed.

I definitely think option two is out the door because we would be checking state before every call and I just don't like the way that it would be implemented.

I do like option one in that it is DRY, but I have others who are not fond of using it. 

Now, with option three, we will incur additional overhead.  Does anyone know how much overhead we would deal with here or what kind of decrease we would see having to recreate the communication object every time?
Twitter