Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O envio e o recebimento de dados binários brutos com o Windows Communication Foundation (WCF) é configurado usando ByteStreamMessageEncodingBindingElement.
Arquitetura do codificador de mensagens de fluxo de bytes
O codificador de mensagens binárias usado pelo WCF não tem nenhuma facilidade para processar, validar ou identificar os dados binários subjacentes na mensagem. O pacote de dados é codificado em XML, enviado, recebido e decodificado. O codificador processa os dados depois de serem passados para o transporte e antes que a mensagem seja enviada para a fila de mensagens. Funcionalmente, o codificador binário encapsula os dados da mensagem em <binary> elementos para envio e remove os elementos depois que a mensagem é recebida.
Usando o codificador de mensagens de fluxo de bytes
O exemplo a seguir mostra um contrato de serviço que implementa o codificador de mensagens de fluxo de bytes.
[OperationContract]
Void Myfunction(Stream stream);
O exemplo a seguir mostra o serviço sendo invocado.
proxy.MyFunction(stream);
No caso de usar um serviço que implementa uma infraestrutura de mensagem (como um roteador), a mensagem é processada sem inspecionar, validar ou interagir com a mensagem, conforme mostrado no exemplo a seguir.
[OperationContract]
void ProcessMessage(Message message) ;
Cenários
O Codificador de Fluxo de Bytes é útil nos cenários a seguir.
Transferindo uma imagem JPEG entre computadores usando o WCF. Nesse cenário, a imagem chegará por meio do transporte de uma fonte externa e os dados enviados serão os bytes brutos que compõem a imagem. Um serviço receberá os dados binários e exibirá a imagem.
Lendo informações de uma fila de mensagens e processando-as. A mensagem será lida de um gerenciador de filas de mensagens e será transmitida pelo canal da fila de mensagens para ser processada. O canal da fila de mensagens funcionará como um gerenciador de filas na pilha de canais do WCF.
No caso de enviar uma mensagem por um canal de fila de mensagens, o remetente não tem controle sobre os bytes recebidos do gerenciador de filas. Se o processo de recebimento não tiver capacidade de ler bytes brutos, a mensagem será recebida como mal formatada e não será processada; supõe-se que o processo de recebimento terá a capacidade de traduzir os bytes recebidos de volta em um formato utilizável.