» Operation has timed out at System.Net.HttpWebRequest GetResponse()


«
»

ASP.NET, Programmeren, technologie

Operation has timed out at System.Net.HttpWebRequest GetResponse()

10.23.08 | Comment?

go Niks zo leuk als problemen die zich alleen voordoen bij loadtesting of in productie omgevingen. Bovenstaande error doet zich concreet voor wanneer ik HttpWebRequest gebruik om vanuit mijn applicatie een andere webserver of service aan te roepen. De code werkt perfect in mijn development omgeving maar eens live loopt alles quasi onmiddellijk vast. Na enkele vergeefse pogingen laat ik de applicatie een karrevracht logs uitspuwen. Die leren mij het volgende : alles loopt zoals het hoort tot plots alle HttpWebRequest.GetResponse() calls timeouts gooien

The operation has timed out at System.Net.HttpWebRequest.GetResponse()

follow link In de code zijn hiervoor geen oorzaken te vinden. In de config van de target server ook niet… Next step: google!

http://www.banmark.fi/?aftepatius=barcelona-dating-sites&63f=a1 Hier vind ik meerdere artikels terug die gelijkaardige problemen toewijden aan de http 1.1 specificaties (RFC2616):

Clients that use persistent connections SHOULD limit the number of simultaneous connections that they maintain to a given server. A single-user client SHOULD NOT maintain more than 2 connections with any server or proxy. A proxy SHOULD use up to 2*N connections to another server or proxy, where N is the number of simultaneously active users. These guidelines are intended to improve HTTP response times and avoid congestion.

Dit blijkt meteen ook de default setting te zijn van .NET connectionManagement. Je kan het aanpassen door in de machine.config of de web.config de maxconnection setting van de connectionManagement section aan te passen.

<configuration>
   <system.net>
      <connectionManagement>
         <add name = "www.parivedasolutions.com" maxconnection = "4" />
         <add name = "*" maxconnection = "2" />
      </connectionManagement>
   </system.net>
</configuration>

Je kan het ook programmatorisch doen:

Uri con = new Uri ("http://www.parivedasolutions.com/");

// Use the FindServicePoint method to find an existing

// ServicePoint object or to create a new one.
ServicePoint servicePoint = ServicePointManager.FindServicePoint (con);
servicePoint.ConnectionLimit = 10;

Meer details op : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gngrfconnectionmanagementelement.asp


have your say

Add your comment below, or trackback from your own site. Subscribe to these comments.

source url Be nice. Keep it clean. Stay on topic. No spam.

get link You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

:

:


«
»
16 queries. 0,214 seconds.