I have a very simple WCF SOAP service that does some changes in DB upon every call and returns some response. I'm also using ServiceChannel to call it from my client side code.
I want to make sure that my client-side code does not just fail when service is too busy, so have implemented a Retry pattern to retry the service call if exception is caught. However, i don't want to retry if exception is caused by my code on WCF server side (if it's not connection-related, or if any OperationContract code was executed anyway (a timeout doesn't mean it wasn't, right?)).
So i want to retry only if
- I've sent a request
- Caught an exception
- None of the server side code in my OperationContract method was executed
Microsoft article (link above) has almost no information about what types of exceptions exactly are transient. What exception types should I use to catch exactly what I need? Or how should I filter them?