Como aumentar MaxStringContentLength no lado do servidor para binário ligação HTTP
-
18-09-2019 - |
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?
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