代码之家  ›  专栏  ›  技术社区  ›  James Cadd

如何增加二进制HTTP绑定服务器端的maxStringContentLength

  •  4
  • James Cadd  · 技术社区  · 16 年前

    我最近转换了一些Silverlight3WCF服务来使用新的二进制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似乎不是一个好主意。因此,仅使用二进制编码,如何增加读卡器配额以允许对大型字符串进行反序列化?

    1 回复  |  直到 15 年前
        1
  •  12
  •   James Cadd    16 年前

    以下是我找到的解决方案:

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