11

I want to send multiple WebRequest. I used a Parallel.For loop to do that but the loop runs once and the second time it gives error while getting response.

Error:

The operation has timed out

Code :

Parallel.For(0, 10, delegate(int i) {
 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(
 new Uri("http://www.mysite.com/service"));
 string dataToSend = "Data";
 byte[] buffer = System.Text.Encoding.GetEncoding(1252).
 GetBytes(dataToSend);
 request.Method = "POST";
 request.ContentType = "application/x-www-form-urlencoded";
 request.ContentLength = buffer.Length;
 request.Host = "www.mysite.com";
 Stream requestStream = request.GetRequestStream();
 requestStream.Write(buffer, 0, buffer.Length);
 requestStream.Close();
 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
});
casperOne
74.6k19 gold badges189 silver badges262 bronze badges
asked Sep 19, 2011 at 21:03
2
  • 2
    It gives you an error message? Really? And is there some particular particular question you would like to ask? Commented Sep 19, 2011 at 21:05
  • What is the exception, where does it occur? Are you sure the server isn't actually timing out? Commented Sep 20, 2011 at 10:44

2 Answers 2

12

Most likely the problem is that you need to call response.Close() after you're done processing the response.

answered Sep 28, 2011 at 18:01
12

In addition to what Jim Mischel said about calling Close on the response, you also need to factor in that, by default, .NET limits an application to only two active HTTP connections per domain at once. To change this you can set System.Net.ServicePointManager.DefaultConnectionLimit programmatically or set the same thing via config using the <system.net><connectionManagement> configuration section.

answered Oct 2, 2011 at 17:11
0

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.