Pergunta

Eu recentemente convertido alguns Silverlight serviços 3 WCF para usar o novo binário http ligações. cadeias longas são frequentemente enviadas para o servidor para desserialização nestes serviços e eu utilizados anteriormente para assegurar que os dados podem ser lidos corretamente. No entanto, com a nova ligação não consigo encontrar o local correto para adicionar o elemento:

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

Aqui está uma tentativa:

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

Isso causou outros problemas - não parecer uma boa idéia ter uma codificação binária e uma textMessageEncoding na ligação mesmo. Então, usando apenas a codificação binária, como posso aumentar as quotas leitor para permitir desserialização de grandes cadeias?

Foi útil?

Solução

Aqui está a solução que eu encontrei:

      <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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top