0

我的 MVC3 应用程序调用 WCF 服务来下载/上传文件。WCF 服务调用一个老式的 asmx 服务来获取所请求文件的 base 64 字符串(下载),或接收文件的 base 64 字符串(上传)。我可以将任何大小的文件下载到我的机器上。

当我尝试上传文件时,出现可怕的最大数组长度错误:

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

那么为什么我可以下载文件但不能上传它们呢?谢谢

4

1 回答 1

1

您需要确保在调用应用的 app/web.config 文件和 WCF 服务的 web.config 文件中都设置了 maxArrayLength。如果托管在 IIS 7+ 中,您可能还需要调整 IIS 请求筛选设置。在 IIS 中,转到要配置的服务器/站点/应用程序的请求过滤功能。在这里,右窗格选项中有一个编辑功能设置操作。选择它,然后在此处也设置最大允许内容长度值。

于 2012-07-12T21:29:16.747 回答