Как увеличить MaxStringContentLength на стороне сервера для двоичной привязки Http

StackOverflow https://stackoverflow.com/questions/1159802

Вопрос

Недавно я преобразовал некоторые сервисы Silverlight 3 WCF для использования новых двоичных http-привязок.Длинные строки часто отправляются на сервер для десериализации в этих сервисах, и я ранее использовал их для обеспечения правильного чтения данных.Однако с новой привязкой я не могу найти правильное место для добавления элемента:

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

Вот одна попытка:

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

Это вызвало другие проблемы - не кажется хорошей идеей использовать двоичную кодировку и textMessageEncoding в одной привязке.Итак, используя только двоичную кодировку, как я могу увеличить квоты чтения, чтобы разрешить десериализацию больших строк?

Это было полезно?

Решение

Вот решение, которое я нашел:

      <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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top