<webMessageEncoding>
Permet de lire et d'écrire le contenu XML de texte brut, les codages de message JSON (JavaScript Objet Notation) et le contenu binaire brut dans une liaison Windows Communication Foundation (WCF).
<system.serviceModel>
<bindings>
<customBinding>
<binding>
<webMessageEncoding>
<webMessageEncoding
maxReadPoolSize="Integer"
maxWritePoolSize="Integer"
writeEncoding=”UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding" />
Attributs et éléments
Attributs
Attribut | Description |
---|---|
maxReadPoolSize |
Quantité maximale de messages pouvant être consultés simultanément sans allouer de nouveaux lecteurs. Des pools plus volumineux permettent au système d'être plus tolérant aux pics d'activité au prix d'une plage de travail plus volumineuse. La valeur par défaut est de 64 lecteurs par codeur interne (texte, JSON, et « brut »). L'augmentation de ce nombre entraîne celle de la consommation de mémoire, mais prépare le codeur afin de traiter les rafales soudaines de messages entrants. En effet, il peut ainsi utiliser les lecteurs existants du pool au lieu d'en créer. |
maxWritePoolSize |
Quantité maximale de messages pouvant être envoyés simultanément sans allouer de nouveaux enregistreurs. Des pools plus volumineux permettent au système d'être plus tolérant aux pics d'activité au prix d'une plage de travail plus volumineuse. La valeur par défaut est de 16 enregistreurs par codeur interne (texte, JSON, et « brut »). L'augmentation de ce nombre entraîne celle de la consommation de mémoire, mais prépare le codeur afin de traiter les rafales soudaines de messages sortants. En effet, il peut ainsi utiliser les writers existants du pool au lieu d'en créer. |
writeEncoding |
Spécifie le codage de jeu de caractères à utiliser pour l'émission de messages sur la liaison. Les valeurs valides sont les suivantes :
La valeur par défaut est Utf8TextEncoding. Cet attribut est de type Encoding. |
Éléments enfants
Élément | Description |
---|---|
Définit les contraintes de la complexité des messages SOAP qui peuvent être traités par les points de terminaison configurés avec cette liaison. Cet élément est de type XmlDictionaryReaderQuotasElement. |
Éléments parents
Élément | Description |
---|---|
Définit toutes les fonctions de liaison correspondant à la liaison personnalisée. |
Notes
Le codage consiste en la transformation d'un message en une séquence d'octets. Le décodage est le processus inverse. Ces processus nécessitent le codage de caractères à titre de spécification.
L'élément webMessageEncoding fonctionne par délégation à une série de codeurs internes afin de gérer les données XML de texte brut, les codages JSON et les données binaires brutes. Cette délégation a lieu par le biais d'un codeur de message composite.
Cet élément de liaison et son codeur composite sont utilisés pour contrôler le codage dans des scénarios qui n'utilisent pas la messagerie SOAP utilisée par l'élément webHttpBinding. Ces scénarios incluent les protocoles POX (Plain Old XML) et REST (Representational State Transfer), la syndication RSS (Really Simple Syndication) et Atom, ainsi que le protocole AJAX (Asynchronous JavaScript and XML). Le codeur de messages composite ne prend pas en charge SOAP ni WS-Addressing.
L'élément de liaison peut être configuré avec un codage de caractères d'écriture à l'aide de l'attribut writeEncoding. La valeur Encoding fournie spécifie le comportement sur l'écriture pour les cas JSON et XML textuels. Lors de la lecture, tous les codages de texte et de message valides sont maîtrisés.
maxReadPoolSize et maxWritePoolSize peuvent également être utilisés pour définir respectivement le nombre maximal de lecteurs et de writers à allouer. Par défaut, 64 lecteurs et 16 writers sont alloués.
Les contraintes de complexité par défaut sont également définies à l'aide de l'élément <readerQuotas> pour protéger l'application contre les attaques par déni de service (DoS) qui tentent d'exploiter la complexité de message pour bloquer les ressources allouées au traitement des points de terminaison.
Exemple
<webMessageEncoding
maxReadPoolSize="256"
maxWritePoolSize="128"
messageVersion="None"
textEncoding=”utf-8”
/>
Voir aussi
Référence
<customBinding>
WebMessageEncodingElement
CustomBinding
MessageEncodingBindingElement
WebMessageEncodingBindingElement
Concepts
Autres ressources
Choosing a Message Encoder
Windows Communication Foundation Bindings
Extending Bindings
Custom Bindings