Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’exemple MTOM illustre l’utilisation de l’encodage de message MTOM (Message Transmission Optimization Mechanism) avec un WSHttpBinding. MTOM est un mécanisme permettant de transmettre des pièces jointes binaires volumineuses avec des messages SOAP sous forme d’octets bruts, ce qui permet de réduire les messages.
Par défaut, WSHttpBinding envoie et reçoit des messages en tant que XML de texte normal. Pour activer l’envoi et la réception de messages MTOM, définissez l’attribut messageEncoding
sur la configuration de la liaison (comme dans l’exemple de code suivant) ou directement sur la liaison à l’aide de la MessageEncoding
propriété. Le service ou le client peut désormais envoyer et recevoir des messages MTOM.
<wsHttpBinding>
<binding name="WSHttpBinding_IUpload" messageEncoding="Mtom" />
</wsHttpBinding>
L’encodeur MTOM peut optimiser les tableaux d’octets et de flux. Dans cet exemple, l’opération utilise un Stream
paramètre et peut donc être optimisée.
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
public interface IUpload
{
[OperationContract]
int Upload(Stream data);
}
Le contrat choisi pour cet exemple transmet des données binaires au service et reçoit le nombre d’octets chargés comme valeur de retour. Lorsque le service est installé et que le client est exécuté, il imprime le nombre 1000, ce qui indique que tous les 1 000 octets ont été reçus. Le reste des listes de sorties optimisées et non optimisées des tailles de message pour différentes charges utiles.
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.
L’objectif de l’utilisation de MTOM est d’optimiser la transmission de charges utiles binaires volumineuses. L’envoi d’un message SOAP à l’aide de MTOM a une surcharge notable pour les petites charges utiles binaires, mais devient une grande économie lorsqu’elles augmentent sur quelques milliers d’octets. La raison en est que le code XML de texte normal encode les données binaires à l’aide de Base64, ce qui nécessite quatre caractères pour les trois octets, et augmente la taille des données d’un tiers. MTOM est en mesure de transmettre des données binaires sous forme d’octets bruts, enregistrant le temps d’encodage/décodage et les messages résultants sont plus petits. Le seuil de quelques milliers d’octets est faible par rapport aux documents d’entreprise et aux photographies numériques d’aujourd’hui.
Pour configurer, générer et exécuter l’exemple
Installez ASP.NET 4.0 à l’aide de la commande suivante.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
Assurez-vous d’avoir effectué la Procédure d’installation unique pour les exemples Windows Communication Foundation.
Pour générer l’édition C# ou Visual Basic .NET de la solution, conformez-vous aux instructions figurant dans Building the Windows Communication Foundation Samples.
Pour exécuter l’exemple dans une configuration à un ou plusieurs ordinateurs, conformez-vous aux instructions figurant dans la rubrique Exécution des exemples Windows Communication Foundation.