我的MVC3应用程序调用WCF服务来下载/上传文件。WCF服务调用旧的asmx服务来获取请求的文件的base64字符串(下载),或者接收文件的base64字符串(上载)。我可以将任何大小的文件下载到我的机器上。
当我尝试上传一个文件时,我得到了可怕的最大数组长度错误:
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.令人困惑的是,我使用与上传文件相同的服务来下载文件。所以我应该在两者上都得到这个错误,但我没有。我的web.config中有以下内容:
<readerQuotas maxDepth="32" maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="4096" maxNameTableCharCount="2147483647"/>那么,为什么我可以下载文件,但不能上传文件呢?谢谢
发布于 2012-07-13 05:29:17
您需要确保在调用应用程序的app/web.config文件和WCF服务的web.config文件中都设置了maxArrayLength。如果宿主在IIS 7+中,则可能还需要调整IIS请求筛选设置。在IIS中,转到要配置的服务器/站点/应用程序的请求筛选功能。在这里,右窗格选项中有一个Edit Feature Settings操作。选择该选项,然后在此处设置允许的最大内容长度值。
https://stackoverflow.com/questions/11460479
复制相似问题