Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > .NET Проблема с программной закачкой файлов через WebClient class.

.NET Проблема с программной закачкой файлов через WebClient class.

Ответ
Поиск в этой теме
Непрочитано 25.11.2010, 10:19 #1
.NET Проблема с программной закачкой файлов через WebClient class.
Pastor
 
это только кличка
 
Москва
Регистрация: 22.10.2006
Сообщений: 252

Проблема состоит в том, что строки
Код:
[Выделить все]
WebClient client = new WebClient();
client.DownloadFile( srcUri, destFileName);
отказывается скачивать файлы большого объема (в моем конкретном случае -22Mb) и выбрасывает исключение. В корне исключения лежит ошибка с NativeErrorCode 10055, а этажом выше - SocketErrorCode NoBufferSpaceAvailable. Текст сопроводительного сообщения таков:
Цитата:
An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full
В моем конкретном случае ошибка вылетает при попытке качать файлы более 16 мегабайт. Файлы большего объема скачиваются не до конца и обрываются ~ на тех самых 16Mb.
В справке MSDN об этой проблеме, разумеется, ни слова.
Я просмотрел практически все, что выдал гугл в русскоязычном варианте по ключевому слову "WebClient", но ни одной ссылки связанной именно с указанной проблемой использования класса WebClient не встретил, что вызывает недоумение. Не может быть, чтобы никто ни разу не сталкивался с подобным.
Пишу в надежде, кто кто либо знает, как правильно искать в сети ответы на вопросы, и кинет нужную ссылочку. В идеале хорошо бы найти пример правильной реализации некоего DownloadManager'a (.NET), лишенного подобных проблем, сделанного на основе классов WebClient или HttpWebRequest. Может быть правильно качать большие файлы частями. Если частями, то какими по объему. В общем, нужна любая нетривиальная информация и примеры использования классов WebClient и WebRequest (HttpWebRequest).
__________________
...в шее моей жилы железные, и лоб мой - медный...

Последний раз редактировалось Pastor, 25.11.2010 в 10:31.
Просмотров: 2651
 
Непрочитано 25.11.2010, 10:28
#2
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Pastor Посмотреть сообщение
В идеале хорошо бы найти пример правильной реализации некоего DownloadManager'a (.NET)
На вскидку.

по дотнету вопросы лучше задавать не здесь (т.к. дотнетчиков здесь почти нет), а к примеру здесь, или здесь.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 25.11.2010 в 10:37.
hwd вне форума  
 
Автор темы   Непрочитано 26.11.2010, 00:32
#3
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


Спасибо за ссылки.
Странное дело, вариант скачивания с использованием метода OpenRead() работает, а вариант с методом DownloadFile(), котрый самый удобный и который я изначально использовал - нет. Так что я переписал всё через OpenRead(). Насколько этот вариант стабильный - время покажет.

p.s.
Небольшой офтоп.
В автокаде 2010 у объекта utility появился метод GetRemoteFile. Я из любопытства попробовал его применить, но результат == 0, т.е. в указанном месте локальный файл не появляется. Небольшие файлы появляются в кэше интернета, а большой не появляется и там. При этом метод возвращает nil, т.е. вроде как нужно считать, что все в порядке. Может я чего не так понял?
Код:
[Выделить все]
(vl-load-com)
(defun c:acaddnl()
  (setq util (vlax-get-property (vla-get-activedocument (vlax-get-acad-object)) 'utility))
  (vlax-invoke-method util 'GetRemoteFile "http://utahost.com/webmenu/study/22_2Mb.mp3" "d:\\acadwebmenu\\heap\\22_2Mb.mp3" :vlax-false)
)
Кстати, метод выполняется синхронно и при больших файлах жизнь на экране замирает.
__________________
...в шее моей жилы железные, и лоб мой - медный...

Последний раз редактировалось Pastor, 26.11.2010 в 01:00.
Pastor вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > .NET Проблема с программной закачкой файлов через WebClient class.

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сомневаюсь в правильности своего перевода hwd Программирование 11 26.10.2009 08:43