2014-09-18 7 views
0

Я новичок в WPF и мало опыта с программированием потоков C#. Мне назначено приложение WPF C# с многопоточным доступом. Требования к этому приложению - загрузка локальных больших файлов в папку назначения с именем «ABC», которая находится непосредственно под корневым дисковым драйвером (например, C: \ ABC) на удаленном сервере, который работает под платформой Windows . Я не знаю, куда идти. Пожалуйста, порекомендуйте. Спасибо.Загрузка файлов на удаленный сервер

Ниже приведены сведения о требованиях:

  1. Поскольку каждый закачанный файл большого размера, то требуется отдельный поток для запуска функции загрузки файла. Я планирую использовать программирование потоков с помощью async/wait и объекта Task. Есть идеи?

  2. В WPF я не знаю, какой элемент управления WPF использовать для функции загрузки. Пожалуйста помоги.

  3. Для папки назначения «ABC», нужно ли явно установить его разрешение доступа?

  4. Я должен использовать класс async/wait и Task или BackgroundWorker?

Update:

WPF приложение не WCF приложения. Извините за мою опечатку.

+0

Это Coveri много! Возможно, вам будет лучше (и получите более подробные ответы), если вы разделите это на три отдельных вопроса. – Belogix

+0

у вас есть некоторые детали, которые я бы предложил вам быть «новичком», как вы говорите.выполните поиск в Google на C# и asych await .. или C# и Task with WCF, также я бы предложил написать код изначально в качестве приложения «Console», чтобы получить функциональность, затем перенести ее в целевую структуру и построить там. – MethodMan

+0

В следующей статье представлен обзор вашего целевого решения: http://www.codeproject.com/Articles/166763/WCF-Streaming-Upload-Download-Files-Over-HTTP – Seymour

ответ

1

Для передачи больших файлов с помощью WCF обслуживание через HTTP, вы можете использовать следующие типы привязок:

  • wsHttpBinding
  • basicHttpBinding

В wsHttpBinding, мы можем установить атрибут TransferMode как Buffered, но есть недостаток в использовании этого подхода для больших файлов, поскольку он должен помещать весь файл в m emory перед загрузкой/загрузкой. Для веб-клиента и хоста службы WCF требуется большой буфер. Однако этот подход очень полезен для надежной передачи небольших файлов.

В basicHTTPBinding мы можем использовать атрибут TransferMode как Streamed, чтобы файл можно было передать в виде кусков.

Для получения дополнительной информации по этой статье: WCF Streaming: Upload/Download Files Over HTTP

и для передачи файлов более TCP/IP прочитать ниже articls:

WCF TCP-based File Server

Sending Files using TCP

Large Message Transfer with WCF-Adapters Part 1

+0

Благодарим вас за ответ. Я сделал ошибку для оригинального сообщения. Приложение представляет собой C# WPF, а не WCF. –

Смежные вопросы