I am not quite sure if this is what you are getting at, but it seems that
there is a problem deep inside the .NET code for ServicePoint (or the
HttpWebRequest's internal use of ServicePoints) which is being used by the
SoapHttpClientProtocol to send a request to a web service. When HTTP
Keep-Alives are enabled and the Web-server closes the connection because of
idle time-out, the .NET code on the client sometimes doesn't seem to notice
the connection is closed and will attempt to re-use it (through the
ServicePoint) which will fail with a time-out exception on subsequent
requests to the server. The client will, at this point, need to be
restarted. To work around this problem, either turn off HTTP Keep-Alive on
the Web-server, if this is an option, or overload the
SoapHttpClientProtocol.GetWebRequest method on the client-proxy and set the
KeepAlive property of HttpWebRequest to false.
I hope this helps.