title: web calls never timing out
body: <p>I have a number of applications using various web technologies such as SOAP, WCF Services, or just simple XmlReader.  However they all seem to suffer the same problem of missing the timeout and hanging infinitely if the internet connection suffers problems at the wrong time.</p>
  
  <p>I have set the timeout in all scenarios to something small, e.g. for wcf</p>
  
  <pre><code>closeTimeout="00:00:15" openTimeout="00:00:15" 
  receiveTimeout="00:00:15" sendTimeout="00:00:15"
  </code></pre>
  
  <p>or for soap</p>
  
  <pre><code>_Session.Timeout = (int)TIMEOUT.TotalMilliseconds;
  </code></pre>
  
  <p>These timeouts do generally get hit, however it appears there is some special case where if the internet drops out at the right time, the call will hang and never time out (using synchronous calls).</p>
  
  <p>I was considering starting up a timer every time I make a call, and using the appropriate <code>.Abort()</code> function if the timer expires to cancel the call.  However, I was wondering if there was a simpler way to fix the issue and ensure the timeout gets hit.</p>
  
  <p>Does anyone know why this occurs, and if so what a clean/simple/good way is to ensure the calls always time out?</p>