[Bug]The maximum array length quota (16384) has been exceeded while reading XML data.

写在前面

在项目中,有客户反应无法正常加载组织结构树,弄了一个测试的程序,在日志中查看到如下信息:

Error in deserializing body of reply message for operation 'GetDepartMentList'. The maximum array length quota (16384) has been exceeded while reading XML data. This quota may be increased by changing the MaxArrayLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader. Line 1, position 23793. 

解决办法

上面那句话的意思大概是,在读取xml数据的时候超出了定额长度。而这个加载组织结构树的代码是采用wcf进行加载的,然后就想到了可以在客户端的配置文件中进行尝试。

修改如下:

<system.serviceModel>
    <bindings>
<basicHttpBinding>
        <binding name="OrganizationService" maxReceivedMessageSize="1024000000" maxBufferSize="1024000000">
           <readerQuotas maxArrayLength="1024000000"/>
        </binding>
</basicHttpBinding>
</bindings>
 <client>
<endpoint address="http://98.87.118.114:6001/OrganizationService.svc/OrganizationService"
          binding="basicHttpBinding" bindingConfiguration="OrganizationService"
          contract="OrganizationService.IOrganizationService" name="OrganizationService" />
 </client>
  </system.serviceModel>

问题到此解决。

原文地址:https://www.cnblogs.com/wolf-sun/p/4215314.html