Убийство HttpWebRequest при медленном ответе - PullRequest
0 голосов
/ 16 июля 2011

Иногда во время ползания я получаю ОЧЕНЬ медленный ответ.

Соединение не медленное, поэтому тайм-аут не работает.Скорость хоста составляет 3-4 байта в секунду.

Есть ли способ убить этот запрос, если он занимает более 10 секунд, как тайм-аут?

Ответы [ 2 ]

2 голосов
/ 16 июля 2011

Что вы хотите сделать, так это запустить процесс сканирования в своем собственном потоке, который истекает по истечении заданного времени. Взгляните на BeginGetResponse () в классе HttpWebRequest, который запускает поток и вызывает указанную функцию после его завершения. К этому методу можно добавить механизм тайм-аута, как показано в разделе «Пример» на следующей странице: http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.begingetresponse(v=VS.71).aspx.

Извините, у меня нет кода, чтобы показать, как это делается, но пример на этой странице выглядит завершенным.

0 голосов
/ 16 июля 2011

Если ваш HttpWebRequest находится в потоке, вы можете убить запрос, вызвав Abort в самом потоке ... Я знаю, что это, возможно, "перебор" ... возможно, у кого-то есть идея получше ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...