Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
24 / 24 / 4
Регистрация: 22.01.2011
Сообщений: 77
1

HTTPWebRequest.GetResponse() возвращает WebException

14.02.2011, 12:08. Просмотров 3041. Ответов 2
Метки нет (Все метки)

Здравствуйте. Возникла еще одна проблема у меня.
Есть многопоточное приложение и такой метод:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
private bool Ping(string _link, string _ping) 
        {
            try
            {
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(_ping);
                req.Method = "POST";
                req.ContentType = "text/xml";
                req.Timeout = 10000;
 
                _link = "<?xml version=\"1.0\"?>\r\n<methodCall>\r\n<methodName>weblogUpdates.ping</methodName>\r\n<params>\r\n<param>\r\n<value>" + _link + "</value>\r\n</param>\r\n<param>\r\n<value>" + _link + "</value>\r\n</param>\r\n</params>\r\n</methodCall>";
 
                byte[] sentData = Encoding.ASCII.GetBytes(_link);
                req.ContentLength = sentData.Length;
 
                ServicePointManager.Expect100Continue = false;
                Stream sendStream = req.GetRequestStream();
                sendStream.Write(sentData, 0, sentData.Length);
                sendStream.Close();
 
                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                resp.Close();
            }
            catch (Exception e) 
            {
                LogD d = new LogD(Log);
                txtLog.Dispatcher.Invoke(d, new object[1] { e.Message });
                return false;
            }
 
            now++;
            return true;
        }
Проблема заключается в следующем: при 10, например, потоках все в порядке. При 50+ сначала все идет нормально, потом начинается растущее количество WebException (Время ожидания истекло). Исключение выбрасывается строкой
C#
1
Stream sendStream = req.GetRequestStream();
Ну и через секунд 30 (примерно) вообще одни исключения, работа замедляется до ~ 1 запроса в 10 секунд.
В чем может быть проблема?

ЗЫ: ах, ну и да, в каждом потоке вызывается этот метод, естественно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2011, 12:08
Ответы с готовыми решениями:

HttpWebRequest возвращает 401 ошибку
Здравствуйте. Имеется небольшая функция, которая отправляет GET запрос и получает ответ. Если все...

HttpWebRequest любой запрос возвращает 403
WebRequest reqGET = (HttpWebRequest)WebRequest.Create(&quot;https://www.fl.ru/&quot;); ...

HttpWebRequest.GetResponse не работает в потоке
Здравствуйте. Написал класс для загрузки файлов с поддержкой простой докачки. Выглядит он вот так:...

Кириллица в getResponse html
Приветствую всех! Есть такой кусок кода: string urlFlat = &quot;https://yandex.ru/&quot;; string...

2
1260 / 961 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
14.02.2011, 13:19 2
Адреса/сайты разные для каждого запроса?
Если один то радуйся что еще не забанили по IP за попытку ддоса )
0
24 / 24 / 4
Регистрация: 22.01.2011
Сообщений: 77
14.02.2011, 13:25  [ТС] 3
Я думал, что коннект к сайту идет при записи в поток. А получается, что уже при GetRequestStream() ?

Вообще похоже на правду, адрес один и тот же Надо прокси прикрутить
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.02.2011, 13:25

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Обход ошибки 404 GetResponse()?
Воспрос такой. У меня проходит ntml авторизаци. Но url на который я ссылаюсь ведет меня к &quot;404&quot;....

Зависает на GetResponse (закачка данных с сайта)
Привет, всем. Помогите решить проблему. Есть код на C#, это открытие доступа к web-странице и...

При вызове GetResponse исключение типа ProtocolViolationException
Добрый день. Неожиданно вылезло исключение типа ProtocolViolationException при вызове метода...

При использовании используя GetResponse() - Server Error
Посылаю информацию на сервер и затем принимаю ответ, используя GetResponse(). Если ответа нет, то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.