2013-05-08 3 views
0

Например, рассмотрите около 10000 записей, отправляемых из службы WCF вызывающему клиенту. В соответствии с WCF мы можем установить размер буфера ответа в файле web.config. Я хочу получить часть ответа по частям, как 1000 записей за раз. Как это можно добиться без каких-либо изменений в файле web.config? .. Нужна помощь в этом отношении.WCF, Part By Part Data Transfer

Заранее спасибо.

+0

Архитектура WCF не знает, что такое «запись», поэтому вам нужно будет написать необходимый код, чтобы обеспечить эту функциональность. размер буфера не связан (до тех пор, пока он достаточно велик для ваших данных) – Alex

+0

Может быть, используемый термин «запись» изменил бы сферу моего вопроса. Извините за использование. Если размер данных больше, чем 65536 (это значение по умолчанию), то wcf создает ошибку. Одним из решений является обновление значения maximumbuffersize в web.config службы wcf. Но, мой вопрос заключается в том, как избежать изменений в конфигурационном файле и продолжить передачу данных, даже если размер данных больше, чем размер данных по умолчанию, поддерживаемый WCF. – prash7

+0

Я вижу, обратите внимание, что это совершенно другой вопрос, и вы должны заменить свой исходный пост – Alex

ответ

1

См. Large Data and Streaming (MSDN) для получения информации о том, как обращаться с вашей ситуацией.

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

Стратегия борьбы с большими полезными грузами - . Хотя сообщения, особенно те, которые выражены в XML, являются , которые обычно считаются относительно компактными пакетами данных, сообщение может иметь несколько гигабайт и напоминать непрерывный поток данных больше, чем пакет данных. Когда данные передаются в режиме потоковой передачи вместо режима буферизации, отправитель делает содержимое тела сообщения доступным для получателя в виде потока , и инфраструктура сообщений непрерывно пересылает данные от отправителю на приемник, поскольку он становится доступно