Web服务数组大小限制

Pet*_*one 1 .net arrays configuration web-services

我的网络方法保持错误,调查最终揭示了以下内容:

格式化程序在尝试反序列化消息时抛出异常:反序列化操作"SendFirmware"的请求消息正文时出错.读取XML数据时已超出最大数组长度配额(16384).通过更改创建XML阅读器时使用的XmlDictionaryReaderQuotas对象上的MaxArrayLength属性,可以增加此配额.

有问题的阵列byte[]包含方法名称中提到的固件映像.这就是它有这么多元素的原因.好的,非常好,现在我知道什么是错的,如果我明确地管理XML就不会有问题.但我不是,这一切都是隐含的.

如何在配置文件中为Web服务设置此项?

Rob*_*ner 6

这可以在以下部分的web.config文件中设置:

<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding" maxBufferSize="2147483647" 
               maxReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="32" maxStringContentLength="8388608" 
               maxArrayLength="16384" maxBytesPerRead="4096" 
               maxNameTableCharCount="16384" />
        </binding>
      </basicHttpBinding>
    </bindings>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)