I’m consuming a web service from C#, and the web service requires a login call and then uses cookie sessions. The web service will time out sessions after a certain timeframe, after which the client will have to re-login. I’d like to find a way to automatically catch the soap fault the service sends back in this scenario, and handle it by re-logging in and then retrying the previously attempted call.
I would prefer to do this somehow automatically for all the web service methods in question, rather than having to manually wrap the calls with the retry logic.
Suggestions?
To avoid a similar issue in the past I actually “pinged” the service occasionally (I had control over the service at other end and created a very light-wight “ping” method but even if there is something simple you can use that would not constitute a denial of service!)
I think I pinged every 2 to 5 minutes or so, it would depend on the web service config etc… That way the authentication issue never really happened and I did not need to do the funky auto re-login thing 🙂
— otherwise… —
If you do need to do the re-login I would be wrapping the whole thing in an interface, this is good practice anyway with web-services, can stub them out etc.
Design a class with utility methods to handle the logging in, you will find it hard to get around not re-typing a lot of calls but that’s just the way it is!
Example….