Загрузка файлов в сервисы WCF подходит - PullRequest
2 голосов
/ 20 августа 2009

У меня есть сервис WCF, который я могу загружать файлы.

XElement upload = service.UploadFiles(id, File.ReadAllBytes(filePath));

Это работает, но мне просто интересно, если это лучший способ загружать каждый из них по одному, когда у вас есть много (около тысячи) небольших файлов (15 ~ 20K). мы сравниваем «коренастый» и «болтливый» подходы?

1) Лучше отправить каждого из них или сжать их все в один файл , чтобы сэкономить время ожидания для подтверждения каждого из них.

2) Сказав это, мне нужно увеличить максимальный размер массива или другие параметры, так как я хочу сжать их все вместе. Это рекомендуется? Потому что я прочитал, что это подтверждение для каждого из них может быть дороже по сравнению с отправкой одного большого файла и одного подтверждения в конце ?

спасибо,

1 Ответ

2 голосов
/ 20 августа 2009

Как вы, похоже, знаете, вы обычно хотите, чтобы ваши сервисы были "короткими", а не "болтливыми". Ответ в вашем конкретном сценарии будет зависеть от:

  • Насколько велика сумма всех файлов.
  • Если и как вы используете подтверждения, которые вы получаете в настоящее время. Если вам нужно обновить пользовательский интерфейс для каждого загружаемого файла, вам будет сложно сохранить уровень детализации, если вы отправите их все сразу.
  • Какой тип надежности / повторяемости вам нужен. Прямо сейчас, если ваша служба или соединение прервется, вы можете просто повторно отправить файлы, которые не были отправлены. Если вы соберете вместе все файлы, вам придется начинать все сначала, что может быть или не быть большой проблемой.

Если вы можете, вы можете посмотреть на поддержку отправки потоков с WCF:

Отправляя Stream, вы получаете преимущества размера от архивирования всего пакета файлов, сохраняя при этом возможность узнать ваш прогресс при загрузке.

Я не уверен в каких-либо конкретных проблемах, связанных с увеличением максимального размера сообщения, помимо того, что это влияет на использование памяти. Наконец, я бы сказал, что вы должны архивировать эти файлы независимо от того, отправляете ли вы их все вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...