2009-03-04 1 views
2

У меня есть служба WCF, размещенная в службе Windows. Теперь я хочу добавить функцию передачи файлов к этой службе, но у меня есть следующие вопросы; принимая во внимание, что передача файлы оба способа и файлы не являются большими (около 10Мб):Некоторые вопросы о передаче файла с использованием WCF

1: Я прочитал в MSDN что «Операции, которые происходят через потоковый транспорт может иметь договор с более чем одним входом или выходным параметром ". Означает ли это, что я не могу иметь операцию с несколькими параметрами или что?

2: Если я использую Потоковый для режима передачи, нужно ли мне заботиться о размере передаваемых данных в операциях, чьи «in» или «out» параметры являются коллекциями?

3: Должен ли я изменить что-либо другое, кроме TransferMode, чтобы установить режим Streamed?

Спасибо.

ответ

3

Посмотрите на this post в определенном направлении по передаче файлов WCF. Вы должны использовать кодер MTOM. Сообщение имеет несколько веских причин, почему и есть некоторые примеры.

  1. Да.
  2. До тех пор, пока все потоковое кодирование с использованием MTOM не должно иметь значения. Просто убедитесь, что вы установили maxReceivedMessageSize в настройке привязки.
  3. Это и создание контракта на сообщение для сообщений. Смотрите ниже:

Образец контракта сообщение:

[MessageContract()] 
public class FileTransferRequest 
{ 
    [MessageHeader(MustUnderstand = true)] 
    public string FileName; 

    [MessageBodyMember(Order = 1)] 
    public System.IO.Stream Data; 
}