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.
A amostra de MTOM demonstra o uso da codificação de mensagem MTOM (Message Transmission Optimization Mechanism) com um WSHttpBinding. O MTOM é um mecanismo para transmitir anexos binários grandes com mensagens SOAP como bytes brutos, permitindo mensagens menores.
Por padrão, o WSHttpBinding envia e recebe mensagens como XML de texto normal. Para habilitar o envio e o recebimento de mensagens MTOM, defina o messageEncoding atributo na configuração da associação (como no código de exemplo a seguir) ou diretamente na associação usando a MessageEncoding propriedade. O serviço ou cliente agora pode enviar e receber mensagens MTOM.
<wsHttpBinding>
<binding name="WSHttpBinding_IUpload" messageEncoding="Mtom" />
</wsHttpBinding>
O codificador MTOM pode otimizar matrizes de bytes e fluxos. Neste exemplo, a operação usa um Stream parâmetro e, portanto, pode ser otimizada.
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
public interface IUpload
{
[OperationContract]
int Upload(Stream data);
}
O contrato escolhido para este exemplo transmite dados binários para o serviço e recebe o número de bytes carregados como o valor retornado. Quando o serviço é instalado e o cliente é executado, ele imprime o número 1000, o que indica que todos os 1000 bytes foram recebidos. O restante da saída lista tamanhos de mensagem otimizados e não otimizados para vários conteúdos.
Output:
1000
Text encoding with a 100 byte payload: 433
MTOM encoding with a 100 byte payload: 912
Text encoding with a 1000 byte payload: 1633
MTOM encoding with a 1000 byte payload: 2080
Text encoding with a 10000 byte payload: 13633
MTOM encoding with a 10000 byte payload: 11080
Text encoding with a 100000 byte payload: 133633
MTOM encoding with a 100000 byte payload: 101080
Text encoding with a 1000000 byte payload: 1333633
MTOM encoding with a 1000000 byte payload: 1001080
Press <ENTER> to terminate client.
A finalidade de usar o MTOM é otimizar a transmissão de grandes cargas binárias. O envio de uma mensagem SOAP usando MTOM tem uma sobrecarga perceptível para pequenas cargas binárias, mas se torna uma grande economia quando elas crescem mais de alguns milhares de bytes. O motivo disso é que o texto normal XML codifica dados binários usando Base64, que requer quatro caracteres para cada três bytes e aumenta o tamanho dos dados em um terço. O MTOM é capaz de transmitir dados binários como bytes brutos, salvando o tempo de codificação/decodificação e resultando em mensagens menores. O limite de alguns milhares de bytes é pequeno quando comparado aos documentos empresariais e fotografias digitais de hoje.
Para configurar, compilar e executar o exemplo
Instale ASP.NET 4.0 usando o comando a seguir.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enableVerifique se você executou o Procedimento de instalação avulsa dos exemplos do Windows Communication Foundation.
Para compilar a edição .NET do C# ou do Visual Basic da solução, siga as instruções contidas em Como Compilar as Amostras do Windows Communication Foundation.
Para executar o exemplo em uma configuração única ou entre máquinas, siga as instruções em Executando os exemplos do Windows Communication Foundation.