2012-01-11 2 views
0

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

«Максимальное количество элементов, которые могут быть сериализованы или десериализованы в графе объектов, составляет« 65536 ». Измените граф объекта или увеличьте квоту MaxItemsInObjectGraph».

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

Итак, каково общее мнение о возврате больших объемов данных?

+0

Прочтите это. Http://www.techrepublic.com/article/coarse-grained-interfaces-enable-service-composition-in-soa/5064520 –

ответ

1

В моем опыте использования синхронных операций веб-службы для передачи больших наборов данных или файлов приводит к множеству различных проблем.

Во-первых, у вас есть проблемы с производительностью - время сериализации на границе обслуживания. Тогда у вас есть проблемы с доступностью. Входящие запросы могут ожидать время ожидания ответа или могут быть отклонены, поскольку для обслуживания запроса нет потока диспетчера.

Гораздо лучше делегировать большую передачу и обработку данных в автономный асинхронный процесс.

Например, в вашей ситуации вы отправляете запрос, и служба возвращает URI на нужный ресурс. Возможно, вам придется подождать, пока ресурс станет доступным, но вы можете соответствующим образом закодировать своего потребителя.

1

У меня нет конкретных примеров, но this article, похоже, указывает на использование WCF для больших наборов данных, и я знаю людей, использующих его для изображений.

Лично мне всегда приходилось увеличивать это свойство для любых данных реального мира.

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