Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Распределённые приложения и сеть > несколько HttpWebRequest последовательно |
Автор: _hunter 28.5.2009, 17:27 | ||
Добрый день. Столкнулся с непонятной проблемой при использовании HttpWebRequest: если такую:
функцию я вызываю один или два раза -- все происходит нормально. Но уже третий вызов блокируется (на request.GetResponse()). При этом собственно запрос никуда не уходит (смотрел Wireshark'ом). Причем запросы к другому домену (после первых двух) спокойно уходят, но, опять, не больше двух штук... Что это за беда такая и как ее бороть? С уважением... |
Автор: jonie 28.5.2009, 18:45 | ||
|
Автор: DVariuS 28.5.2009, 18:47 | ||
_hunter, попробуй таймаут запроса меньше сделать (по умолчанию 100000 мс):
Гоню, это не поможет. jonie прав, его вариант 100% рабочий ![]() |
Автор: _hunter 28.5.2009, 18:54 |
using помог. спасибо. |
Автор: Ar22 2.8.2009, 00:26 |
Подскажите, как правильно применить using в этом примере, у меня такая же проблема просто |
Автор: _hunter 4.8.2009, 19:23 | ||
да так и использовать, как написанно было... если кодом:
|
Автор: Mad 7.8.2009, 18:03 | ||
_hunter, using нужен, но также в конце загрузки надо вызывать response.Close()
Немного поясню, каждое соединение береться из пула (размер которого ограничен), и считаеться открытым (используемым) до вызова Stream.Close или HttpWebResponse.Close. |
Автор: jonie 11.8.2009, 12:04 |
mihryak правила хорошего тона подразумевают вызов close() даже если используется using, который неявно (с т.з. кода) вызовет Dispose.... |
Автор: mihryak 11.8.2009, 14:17 | ||
спорить особо не буду (во многом из-за отсутствия "официальных" документов, которых здесь не может быть в принципе), но МСДН преподносит Dispose как метод, призванный освобождать все занятые объектом managed и unmanaged ресурсы, а я как-то себя приучил, что стоит отдавать себе отчёт в каждой написанной строчке кода, и у меня ну никак не получается два раза подряд один вызов писать |