<webMessageEncoding>

Lehetővé teszi az egyszerű szöveges XML, JavaScript Object Notation (JSON) üzenetkódolások és a "nyers" bináris tartalom olvasását és írását, amikor a Windows Communication Foundation (WCF) kötésben használják.

<configuration>
  <system.serviceModel>
    <bindings>
      <customBinding>
        <binding>
          <webMessageEncoding>

Szemantika

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

Attribútumok és elemek

A következő szakaszok az attribútumokat, a gyermekelemeket és a szülőelemeket ismertetik.

Attributes

Attribute Description
maxReadPoolSize Az egyszerre olvasható üzenetek mennyisége új olvasók kiosztása nélkül. A nagyobb készletméretek toleránsabbá teszik a rendszert a nagyobb munkakészletek árán kiugró tevékenységnövekedésekkel. Az alapértelmezett érték 64 olvasó az egyes belső kódolókhoz (szöveg, JSON és "nyers").

Ennek a számnak a növelése növeli a memóriahasználatot, de előkészíti a kódolót a bejövő üzenetek hirtelen kirobbanásának kezelésére, mivel a már létrehozott készletből származó olvasókat is használhatja újak létrehozása helyett.
maxWritePoolSize Az új írók kiosztása nélkül egyidejűleg küldhető üzenetek mennyisége. A nagyobb készletméretek toleránsabbá teszik a rendszert a nagyobb munkakészletek árán kiugró tevékenységnövekedésekkel. Az alapértelmezett érték 16 író az egyes belső kódolókhoz (szöveg, JSON és "nyers").

Ennek a számnak a növelése növeli a memóriahasználatot, de előkészíti a kódolót a kimenő üzenetek hirtelen kirobbanásának kezelésére, mivel a már létrehozott készletből származó írókat képes használni az újak létrehozása helyett.
writeEncoding Megadja a kötésen lévő üzenetek kibocsátásához használandó karakterkészlet kódolását. Az érvényes értékek a következők:

- UnicodeFffeTextEncoding: Unicode Big Endian kódolás.
- Utf16TextEncoding: Unicode kódolás.
- Utf8TextEncoding: 8 bites kódolás.

Az alapértelmezett érték az Utf8TextEncoding. Ez az attribútum típusa Encoding.

Gyermekelemek

Elem Description
<readerQuotas> Meghatározza a SOAP-üzenetek összetettségére vonatkozó korlátozásokat, amelyeket az ezzel a kötéssel konfigurált végpontok feldolgozhatnak. Ez az elem típusa XmlDictionaryReaderQuotasElement.

Szülőelemek

Elem Description
<kötés> Meghatározza az egyéni kötés összes kötési képességét.

Megjegyzések

A kódolás az üzenet bájtok sorozatává alakításának folyamata. A dekódolás a fordított folyamat. Ezek a folyamatok megkövetelik a karakterkódolás specifikációját.

Az webMessageEncoding elem úgy működik, hogy belső kódolók sorozatára delegál az egyszerű szöveges XML- és JSON-kódolások, valamint a "nyers" bináris adatok kezelésére. Ezt a delegálást egy összetett üzenetkódoló végzi.

Ez a kötéselem és annak összetett kódolója az elem által használt SOAP-üzenetküldést nem használó forgatókönyvek kódolásának webHttpBinding szabályozására szolgál. Ilyen forgatókönyvek például a "Plain Old XML" (POX), a Representational State Transfer (REST), a Really Simple Syndication (RSS) és az Atom syndication, valamint az Aszinkron JavaScript és XML (AJAX). Az összetett üzenetkódoló nem támogatja a SOAP vagy a WS-Addressing protokollt.

A kötési elem írási karakterkódolással konfigurálható az writeEncoding attribútum használatával. A megadott Encoding érték határozza meg a JSON- és szöveges XML-esetek írási viselkedését. Olvasás esetén a rendszer minden érvényes üzenetkódolást és szövegkódolást megért.

maxReadPoolSize és maxWritePoolSize a maximálisan lefoglalandó olvasók és írók számának beállítására is használható. Alapértelmezés szerint 64 olvasó és 16 író van lefoglalva.

Az alapértelmezett összetettségi korlátozások a <readerQuotas> elem használatával is be vannak állítva a szolgáltatásmegtagadási (DOS-) támadások elleni védelemhez, amelyek üzenetbonyolítást próbálnak használni a végpontfeldolgozó erőforrások összekapcsolásához.

Example

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

Lásd még