HttpWebRequest: запрос был прерван: запрос был отменен

Я работал над разработкой среднего своего рода приложения человека, которое загружает текст на бэкенд CMS с помощью запросов сообщения HTTP на серию дат (обычно 7 за один раз). Я использую HttpWebRequest для выполнения этого. Это, кажется, хорошо работает для первого свидания, но когда это запускает вторую дату, я получаю Систему. Сеть. WebException: запрос был прерван: запрос был отменен.

Я искал вокруг и нашел следующие большие подсказки:

http://social.msdn.microsoft.com/Forums/en-US/netfxnetcom/thread/0d0afe40-c62a-4089-9d8b-fb4d206434dc

http://www.jaxidian.org/update/2007/05/05/8

http://arnosoftwaredev.blogspot.com/2006/09/net-20-httpwebrequestkeepalive-and.html

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

Вот мой код: http://pastebin.org/115268

Я получаю ошибку на строке 245 после того, как она работала успешно, по крайней мере, однажды.

Я ценил бы любую справку, которую я могу получить, поскольку это - последний шаг в проекте, я продолжал работать для когда-то. Это - мой первый проект C#/VS, таким образом, я открыт для любых подсказок, но я хотел бы сфокусироваться на получении этой проблемы, решенной сначала.

Спасибо!

22
задан ShadowChaser 28 July 2011 в 16:31
поделиться

1 ответ

Общим решением, перечисленным в Интернете, является установка свойства KeepAlive в HttpWebRequest в false. Это может решить проблему, если основная причина заключается в том, что соединение ожидается повторно использовать, хотя на самом деле оно было автоматически закрыто через некоторое время. Однако постоянное открытие и закрытие соединений сказывается на производительности.

Другим возможным решением, которое я использовал, когда столкнулся с этой проблемой, было расширение свойств Timeout: WebRequest.ReadWriteTimeout, WebRequest.Timeout, RequestStream.WriteTimeout и RequestStream.ReadTimeout. Обратите внимание, что эти параметры указываются в миллисекундах, поэтому вы можете захотеть, чтобы таймауты были 1000 * 60 * 10, чтобы представить 10 минут (или просто 600000, если вы думаете, что знаете, что это значит...). Вы можете проверить, является ли это более вероятной причиной проблемы, уменьшив размер файла.

BTW. Вашего кода больше нет на указанном сайте. Вы можете включить его в текст своего сообщения, если это все еще проблема.

21
ответ дан 29 November 2019 в 04:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: