Я пытаюсь загрузить файлы на веб-сервер с помощью System.Net.WebClient.UploadFile, но получаю исключение WebException. В частности, я получаю 3 ошибки. Я понятия не имею, почему я не получаю ту же ошибку, но все они, кажется, связаны на основе того, что я нашел в Интернете.
- Запрос был прерван: запрос был отменен.
- Соединение закрыто. Попробуйте еще раз.
- Существующее соединение было принудительно закрыто удаленным хостом.
Это кажется несколько случайным (не всегда один и тот же файл, количество времени или любой другой шаблон, который я могу выяснить). Также это не происходит в моей рабочей сети (загрузка занимает менее 2 секунд), но происходит из дома через DSL (загрузка занимает около 2 минут).
Из того, что я обнаружил в Интернете, эти ошибки как-то связаны с keep-alive. К сожалению, WebClient не предоставляет возможности отключить их (я не уверен, что хотел бы, так или иначе, так как это функция производительности).
Я думаю, это может быть связано с тайм-аутами, но я не могу понять, почему. Сервер ASP.Net MVC и время ожидания установлено на час.
<httpRuntime
maxRequestLength="10024"
executionTimeout="3600"
/><!-- 10024 = 10MB, 3600 = 1hr -->
Мне интересны оба способа решения этой проблемы, чтобы этого не произошло, а также методы восстановления (простое повторное выполнение запроса не представляется эффективным).
Некоторый фон, это для приложения WinForms, которое загружает фотографии на сервер. Сервер является приложением ASP.Net MVC. Клиент работал правильно в течение долгого времени, но теперь не работает, так как я переключил его на ASP.Net MVC (он использовал классический ASP с SA FileUp). Клиентская сторона изменялась только для размещения новых URL-адресов, за исключением того, что она почти такая же.