Почему одновременно происходит только два соединения с сайтом через WebProxy?

Рейтинг: 1Ответов: 1Опубликовано: 23.11.2014

Пишу навороченый прокси-чеккер, и вот какая у меня появилась непонятка.
При помощи класса WebProxy я в несколько потоков коннектюсь к какому-то сайту, и все работает нормально, но, судя по сниферу, который у меня установлен, у меня идет всего 2 одновременных соединения, а мне нужно 50.

Почему оно одновременно поддерживает только два?
Ведь у меня в настройках ConnectionLimit выставлено все как положено:

Uri _Uri = new Uri(_url);
ServicePoint sUri = ServicePointManager.FindServicePoint(_Uri);
sUri.ConnectionLimit = 50;

Короче, вот сам код:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(_url);
 request.Method = "POST";  
   request.Timeout = 1800000;
    request.Accept = "**";
     request.KeepAlive = true;
      request.Proxy = new WebProxy("154.111.23.90",3128);
      byte[] _Data = Encoding.GetEncoding(1251).GetBytes("Test");
      request.ContentLength = _Data.Length;
     Stream sendStream = request.GetRequestStream();
   sendStream.Write(_Data,0,_Data.Length);
 sendStream.Close();
var response = request.GetResponse();
MessageBox.Show(response.ToString());
response.Close();

И вот что ещё интересно: когда коннектишься не через прокси, то есть через свой IP, то работает правильно, т.е. делает 50 соединений одновременно. А вот если через прокси - только 2.
Почему так, вообще непонятно. И они, кстати, эти соединения, как бы становятся на очередь, то есть сначала первые два соединения из пятидесяти коннектятся, потом следующие два, потом следующие, и следующие, и так далее, пока все 50, что я установил, не завершатся.
Но почему одновременно-то не хочет коннектить, неясно.
Приложение работает в многопоточном режиме асинхронно, в код выше я включил только самое основное, чтобы не забивать вам головы мусором.
Ну, вот такие дела. Кто, может, сталкивался или знает, как исправить, подскажите.

Ответы

Ответов пока нет.