Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Настройка отправки и получения необработанных двоичных данных с помощью ByteStreamMessageEncodingBindingElementWindows Communication Foundation (WCF).
Архитектура кодировщика сообщений потока байтов
Кодировщик двоичных сообщений, используемый WCF, не имеет средства для обработки, проверки или идентификации базовых двоичных данных в сообщении. Пакет данных кодируется в XML, отправляется, получает и декодируется. Кодировщик обрабатывает данные после передачи в транспорт и перед отправкой сообщения в очередь сообщений. Функционально двоичный кодировщик упаковывает данные сообщения в <binary> элементы для отправки и удаления элементов после получения сообщения.
Использование кодировщика сообщений потока байтов
В следующем примере показан контракт сервиса, использующий байтовый кодировщик сообщений.
[OperationContract]
Void Myfunction(Stream stream);
В следующем примере показана вызываемая служба.
proxy.MyFunction(stream);
В случае использования службы, реализующей инфраструктуру сообщений (например, маршрутизатор), сообщение обрабатывается без его осмотра, подтверждения или какого-либо взаимодействия, как показано в следующем примере.
[OperationContract]
void ProcessMessage(Message message) ;
Сценарии
Кодировщик потока байтов полезен в следующих сценариях.
Передача изображения JPEG между компьютерами с помощью WCF. В этом сценарии образ будет поступать через транспорт из внешнего источника, и отправленные данные будут необработанными байтами, составляющими изображение. Служба получит двоичные данные и отобразит изображение.
Чтение сведений из очереди сообщений и его обработка. Сообщение будет считываться из менеджера очереди сообщений, а затем передано на канал очереди сообщений, где оно будет обработано. Канал очереди сообщений будет выступать в качестве диспетчера очередей в архитектуре каналов WCF.
В случае отправки сообщения через канал очереди сообщений отправитель не контролирует байты, полученные от диспетчера очередей. Если процесс получения не имеет возможности считывать необработанные байты, сообщение будет получено как плохо отформатированный и не будет обработано; Предполагается, что процесс получения будет иметь возможность преобразования полученных байтов обратно в доступный формат.