<webMessageEncoding>
Consente alle codifiche di messaggi XML di testo normale e JSON (JavaScript Object Notation) e al contenuto binario "non elaborato" di essere letti e scritti quando vengono utilizzati in un'associazione Windows Communication Foundation (WCF).
<system.serviceModel>
<bindings>
<associazionePersonalizzata>
<associazione>
<webMessageEncoding>
<webMessageEncoding
maxReadPoolSize="Integer"
maxWritePoolSize="Integer"
writeEncoding=”UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding" />
Attributi ed elementi
Attributi
Attributo | Descrizione |
---|---|
maxReadPoolSize |
Numero di messaggi che è possibile leggere contemporaneamente senza allocare nuovi lettori. Dimensioni maggiori del pool rendono il sistema più tollerante ai picchi di attività al costo di un working set superiore. L'impostazione predefinita è 64 lettori per ogni codificatore interno (testo, JSON e "non elaborato"). Sebbene l'aumento di questo numero determini un maggiore consumo di memoria, in questo modo il codificatore sarà in grado di gestire picchi improvvisi di messaggi in arrivo utilizzando i lettori del pool già creati anziché crearne di nuovi. |
maxWritePoolSize |
Numero di messaggi che è possibile inviare contemporaneamente senza allocare nuovi writer. Dimensioni maggiori del pool rendono il sistema più tollerante ai picchi di attività al costo di un working set superiore. L'impostazione predefinita è 16 writer per ogni codificatore interno (testo, JSON e "non elaborato"). Sebbene l'aumento di questo numero determini un maggiore consumo di memoria, in questo modo il codificatore sarà in grado di gestire picchi improvvisi di messaggi in uscita utilizzando i writer del pool già creati anziché crearne di nuovi. |
writeEncoding |
Specifica la codifica del set di caratteri da utilizzare per l'emissione dei messaggi dell'associazione. I valori validi sono:
L'impostazione predefinita è Utf8TextEncoding. Questo attributo è di tipo Encoding. |
Elementi figlio
Elemento | Descrizione |
---|---|
Definisce i vincoli sulla complessità dei messaggi SOAP che possono essere elaborati dagli endpoint configurati con questa associazione. L'elemento è di tipo XmlDictionaryReaderQuotasElement. |
Elementi padre
Elemento | Descrizione |
---|---|
Definisce tutte le funzionalità di associazione dell'associazione personalizzata. |
Osservazioni
La codifica è il processo di trasformazione di un messaggio in una sequenza di byte. La decodifica è il processo inverso. Questi processi richiedono la specifica di una codifica caratteri.
L'elemento webMessageEncoding delega a una serie di codificatori interni la gestione di codifiche XML di testo normale e JSON e dati binari non elaborati. Questa delega viene eseguita mediante un codificatore di messaggi composto.
Questo elemento di associazione e il relativo codificatore composto vengono utilizzati per controllare la codifica in scenari che non utilizzano la messaggistica SOAP utilizzata dall'elemento webHttpBinding. Questi scenari includono POX (Plain Old XML), REST (Representational State Transfer), RSS (Really Simple Syndication ) e AJAX (Atom syndication and Asynchronous JavaScript and XML). Il codificatore di messaggi composto non supporta SOAP o WS-Addressing.
L'elemento di associazione può essere configurato con una codifica dei caratteri di scrittura mediante l'attributo writeEncoding. Il valore Encoding fornito specifica il comportamento in scrittura per le codifiche JSON e XML di testo. In lettura viene interpretata qualsiasi codifica di messaggi e codifica di testo valida.
Le proprietà maxReadPoolSize e maxWritePoolSize possono inoltre essere utilizzate per impostare rispettivamente il numero massimo di lettori e il numero massimo di writer da allocare. Per impostazione predefinita vengono allocati 64 lettori e 16 writer.
I vincoli di complessità predefiniti vengono inoltre impostati utilizzando l'elemento <quoteReader> al fine di realizzare la protezione contro una classe di attacchi di tipo Denial of Service (DoS) che tentano di utilizzare la complessità dei messaggi per bloccare le risorse di elaborazione dell'endpoint.
Esempio
<webMessageEncoding
maxReadPoolSize="256"
maxWritePoolSize="128"
messageVersion="None"
textEncoding=”utf-8”
/>
Vedere anche
Riferimenti
<associazionePersonalizzata>
WebMessageEncodingElement
CustomBinding
MessageEncodingBindingElement
WebMessageEncodingBindingElement
Concetti
Altre risorse
Choosing a Message Encoder
Windows Communication Foundation Bindings
Extending Bindings
Custom Bindings