Note that there are some explanatory texts on larger screens.

plurals
  1. PO"Unable to connect to remote server fail" in HttpWebRequest
    text
    copied!<p>I am using VSTS 2008 + C# + .Net 3.5 to develop a console application and I send request to another server (IIS 7.0 on Windows Server 2008). I find when the # of request threads are big (e.g. 2000 threads), the client will receive error "Unable to connect to remote server fail" when invoking response = (HttpWebResponse)request.GetResponse().My confusion is -- I have set timeout to be a large value, but I got such fail message within a minute. I think even if the connection are really larger than what IIS could serve, client should not get such fail message so soon, it should get such message after timeout period. Any comments? Any ideas what is wrong? Any ideas to make more number of concurrent connection being served by IIS 7.0?</p> <p>Here is my code,</p> <pre><code> class Program { private static int ClientCount = 2000; private static string TargetURL = "http://labtest/abc.wmv"; private static int Timeout = 3600; static void PerformanceWorker() { Stream dataStream = null; HttpWebRequest request = null; HttpWebResponse response = null; StreamReader reader = null; try { request = (HttpWebRequest)WebRequest.Create(TargetURL); request.Timeout = Timeout * 1000; request.Proxy = null; response = (HttpWebResponse)request.GetResponse(); dataStream = response.GetResponseStream(); reader = new StreamReader(dataStream); // 1 M at one time char[] c = new char[1000 * 10]; while (reader.Read(c, 0, c.Length) &gt; 0) { Console.WriteLine(Thread.CurrentThread.ManagedThreadId); } } catch (Exception ex) { Console.WriteLine(ex.Message + "\n" + ex.StackTrace); } finally { if (null != reader) { reader.Close(); } if (null != dataStream) { dataStream.Close(); } if (null != response) { response.Close(); } } } static void Main(string[] args) { Thread[] workers = new Thread[ClientCount]; for (int i = 0; i &lt; ClientCount; i++) { workers[i] = new Thread((new ThreadStart(PerformanceWorker))); } for (int i = 0; i &lt; ClientCount; i++) { workers[i].Start(); } for (int i = 0; i &lt; ClientCount; i++) { workers[i].Join(); } return; } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload