Question

J'ai récemment converti quelques Silverlight 3 services WCF d'utiliser les nouvelles liaisons binaires http. Les chaînes longues sont souvent envoyés vers le serveur pour désérialisation dans ces services et je l'ai déjà utilisés pour assurer que les données puissent être lues correctement. Cependant, avec la nouvelle liaison, je ne peux pas trouver le bon endroit pour ajouter l'élément:

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

Voici une tentative:

      <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>

qui a causé d'autres problèmes - il ne semble pas être une bonne idée d'avoir un codage binaire et un textMessageEncoding dans la même liaison. Donc, en utilisant uniquement le codage binaire, comment puis-je augmenter les quotas de lecture pour permettre désérialisation des grandes chaînes?

Était-ce utile?

La solution

Voici la solution que je trouve:

      <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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top