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