Web服务数组大小限制

时间:2009-02-10 03:30:58

标签: .net web-services arrays configuration

我的网络方法一直存在错误,调查最终揭示了以下内容:

  

格式化程序抛出异常   试图反序列化消息:   反序列化请求主体时出错   操作'SendFirmware'的消息。   最大数组长度配额(16384)   读取XML时已超出   数据。这个配额可能会增加   更改MaxArrayLength属性   在XmlDictionaryReaderQuotas上   创建XML时使用的对象   阅读器。

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

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

1 个答案:

答案 0 :(得分: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>