Compartir a través de


<webMessageEncoding>

Habilita texto sin formato XML, las codificación de mensajes de JavaScript Object Notation (JSON) y el contenido binario "sin formato" para ser leído y escrito cuando se utiliza en un enlace Windows Communication Foundation (WCF).

<<system.serviceModel>>
  <enlaces>
    <customBinding>
      <enlace>
        <webMessageEncoding>

<webMessageEncoding 
      maxReadPoolSize="Integer"
   maxWritePoolSize="Integer"
      
writeEncoding=”UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding" />

Atributos y elementos

Atributos

Atributo Descripción

maxReadPoolSize

El número de mensajes que se pueden leer simultáneamente sin asignar nuevos lectores. Los tamaños de grupo más grandes hacen que el sistema sea más tolerante a picos de actividad a costa de un espacio de trabajo mayor. El valor predeterminado es 64 lectores para cada uno de los codificadores internos (texto, JSON, y "sin formato").

Al aumentar este número, se aumenta el consumo de memoria, pero se prepara al codificador para tratar con ráfagas súbitas de mensajes entrantes porque puede utilizar los lectores del grupo ya creados en lugar de tener que crear nuevos.

maxWritePoolSize

El número de mensajes que se pueden enviar simultáneamente sin asignar nuevos escritores. Los tamaños de grupo más grandes hacen que el sistema sea más tolerante a picos de actividad a costa de un espacio de trabajo mayor. El valor predeterminado es 16 escritores para cada uno de los codificadores internos (texto, JSON, y "sin formato").

Al aumentar este número, se aumenta el consumo de memoria, pero se prepara al codificador para tratar con ráfagas súbitas de mensajes salientes porque puede utilizar los escritores del grupo ya creados en lugar de tener que crear nuevos.

writeEncoding

Especifica el codificador del juego de caracteres que se va a usar para emitir los mensajes en el enlace. Los valores válidos son:

  • UnicodeFffeTextEncoding: codificación Big Endian de Unicode.
  • Utf16TextEncoding: codificación Unicode.
  • Utf8TextEncoding: codificación de 8 bits.

El valor predeterminado es Utf8TextEncoding. Este atributo es del tipo Encoding.

Elementos secundarios

Elemento Descripción

<readerQuotas>

Define restricciones en la complejidad de los mensajes SOAP que pueden ser procesados por los puntos finales configurados con este enlace. Este elemento es del tipo XmlDictionaryReaderQuotasElement.

Elementos primarios

Elemento Descripción

<enlace>

Define todas las funciones de enlace del enlace personalizado.

Comentarios

Codificar es el proceso de transformar un mensaje en una secuencia de bytes. Descodificar es el proceso inverso. Estos procesos requieren la especificación de una codificación de caracteres.

El elemento webMessageEncoding funciona delegando a una serie de codificadores internos para administrar el texto sin formato XML y las codificaciones JSON, así como los datos binarios "sin formato." Un codificador del mensaje compuesto hace esta delegación.

Este elemento de enlace y su codificador compuesto se utilizan para controlar la codificación en escenarios que no utilizan la mensajería de SOAP utilizada por el elemento webHttpBinding. Estos escenarios incluyen "Plain Old XML" (POX), Representational State Transfer (REST), Really Simple Syndication (RSS) y Atom syndication, y Asynchronous JavaScript y XML (AJAX). El codificador del mensaje compuesto no admite SOAP o WS-Addressing.

El elemento de enlace se puede configurar con una codificación de caracteres de escritura utilizando el atributo writeEncoding. El valor Encoding proporcionado especifica el comportamiento en escritura para los casos de texto XML y JSON. En lectura, cualquier codificación de mensajes válida y codificación de texto se entenderán.

maxReadPoolSize y maxWritePoolSize también se pueden utilizar para establecer el número máximo de lectores y escritores que se van a asignar respectivamente. De forma predeterminada se asignan 64 lectores y 16 escritores.

Las restricciones de complejidad predeterminadas también se establecen con el elemento <readerQuotas> para protegerse contra una clase de ataques por denegación de servicio (DOS) que intentan usar la complejidad del mensaje para atar los recursos de procesamiento del extremo.

Ejemplo

<webMessageEncoding 
    maxReadPoolSize="256"
    maxWritePoolSize="128"
    messageVersion="None"
    textEncoding=”utf-8” 
/>

Consulte también

Referencia

<customBinding>
WebMessageEncodingElement
CustomBinding
MessageEncodingBindingElement
WebMessageEncodingBindingElement

Conceptos

Codificación de mensajes

Otros recursos

Choosing a Message Encoder
Windows Communication Foundation Bindings
Extending Bindings
Custom Bindings