Задача интеграции Wcf, необходимо передать большой объем данных через сервис мыла - PullRequest
0 голосов
/ 01 февраля 2012

Мне нужно спроектировать интеграционное решение, которое передает большой объем данных и работает один раз в день. Компания X, с которой мы работаем, вызовет услугу / услуги и предоставит данные в качестве параметров.

Есть ли у вас какие-либо предложения для этого решения?

Например, вы думаете, что я должен сообщить компании X, что они должны отправлять сжатые (gzip?) Данные?

Или я должен реализовать этот сценарий использования:

while(!allDataSent)
{
    SendData(List<object> objects);
}    
TransferCompleted();

Как вы разрабатываете такие задачи?

1 Ответ

0 голосов
/ 01 февраля 2012

Хорошей отправной точкой является наличие отдельных конечных точек для службы и клиента, которые будут выполнять передачу данных, поскольку вам необходимо изменить тайм-ауты и максимальные пределы для количества данных, которое вы можете отправлять и получать в соединении. Если это не критично по времени, вы можете использовать IEnumerable<YourType> в качестве типа возврата для функции и на стороне клиента, они могут использовать его в качестве потока и могут сохранить его в пакетном режиме, пока он получает данные, чтобы не было необходимости чтобы все это было в памяти.

На стороне клиента это может выглядеть примерно так:

foreach (var bytes = servliceClient.GetLargeAmountOfData())
   SaveByteToDisc(bytes);

Информация о свойствах привязки может быть найдена в MSDN

...