Двоичная сериализация в WCF NetTCPBinding

В настоящее время у меня есть несколько служб WCF в .Net 3.5, которые общаются с клиентами через привязку NetTCP. Мы перешли с привязок WsHTTP на NetTCP, чтобы уменьшить трафик данных между клиентом и сервером (передача NetTCP har в двоичном коде).

Мы не удовлетворены результатами (сокращение всего на 30% в наших тестах) и хотим использовать двоичный сериализатор вместо стандартной xml-сериализации объекта.

Уменьшит ли это полезную нагрузку еще больше? Как реализовать двоичную сериализацию в WCF? Мы используем типизированные наборы данных в качестве объектов для передачи ..


person Martin    schedule 22.08.2011    source источник


Ответы (1)


Абсолютно никакого сарказма, но вам следует серьезно подумать об использовании простых объектов для контрактов данных службы вместо набора данных. Строго типизированный объект набора данных может быть очень сложным (просто посмотрите на код), и любая его сериализация будет довольно объемной по размеру. NetTcpBinding уже использует двоичный сериализатор, который должен производить меньшую полезную нагрузку. В качестве альтернативы, если вы пытаетесь создать уровень обслуживания с возможностью запросов / гибкий, рассмотрите использование архитектура службы на основе ресурсов.

Если вы думаете, что можете улучшить двоичный кодировщик Microsoft для netTcpBinding, посмотрите пример кода, указанный в этом Сообщение MSDN, чтобы начать работу.

person Sixto Saez    schedule 22.08.2011
comment
привет и спасибо. Проект полностью заблокирован для использования строго типизированных наборов данных, так что это не вариант. Вы уверены, что NetTCPBinding использует двоичный сериализатор? Я знаю, что сериализованные объекты передаются в двоичной кодировке, но я думал, что объекты сериализованы нормально (xml)? - person Martin; 23.08.2011
comment
У меня сейчас нет времени проверить это, но я считаю, что netTcpBinding использует двоичный формат сериализации XML задокументировано в этом сообщении MSDN. Обязательно просмотрите этот документ, если вы думаете о развертывании собственного формата сериализации. Это сообщение в блоге MSDN поможет вам начать этот путь. Удачи тебе!! - person Sixto Saez; 23.08.2011