4

Ich habe vor kurzem einige Silverlight 3 WCF-Dienste konvertiert, um die neuen binären HTTP-Bindungen zu verwenden. Lange Zeichenketten werden oft zur Deserialisierung in diesen Diensten an den Server gesendet, und ich habe zuvor dafür gesorgt, dass die Daten richtig gelesen werden konnten. Doch mit der neuen Bindung kann ich nicht den richtigen Ort finden das Element hinzuzufügen:Wie MaxStringContentLength auf der Serverseite für binäre HTTP-Bindung zu erhöhen

 <customBinding> 
     <binding name="binaryHttpBinding"> 
      <binaryMessageEncoding maxReadPoolSize="2147483647" maxSessionSize="2147483647" maxWritePoolSize="2147483647"/> 
      <httpTransport maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/> 
     </binding> 
     </customBinding> 

Hier ein Versuch ist:

 <customBinding> 
     <binding name="binaryHttpBinding"> 
      <binaryMessageEncoding maxReadPoolSize="2147483647" maxSessionSize="2147483647" maxWritePoolSize="2147483647"/> 
      <httpTransport maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/> 
      <textMessageEncoding> 
      <readerQuotas maxDepth="32" maxStringContentLength="5242880" 
      maxArrayLength="200000" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
      </textMessageEncoding> 
     </binding> 
     </customBinding> 

, dass andere Probleme verursacht - es scheint nicht, wie eine gute Idee, eine binäre Codierung und eine textMessageEncoding in der gleichen Bindung zu haben. Wenn ich also nur die Binärcodierung verwende, wie kann ich die Leserkontingente erhöhen, um die Deserialisierung großer Strings zu ermöglichen?

Antwort

12

Hier ist die Lösung, die ich gefunden:

 <customBinding> 
     <binding name="binaryHttpBinding"> 
      <binaryMessageEncoding maxReadPoolSize="2147483647" maxSessionSize="2147483647" maxWritePoolSize="2147483647"> 
      <readerQuotas maxDepth="32" maxStringContentLength="5242880" 
      maxArrayLength="200000" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
      </binaryMessageEncoding> 
      <httpTransport maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/> 
     </binding> 
     </customBinding> 
Verwandte Themen