3

我遇到了一个问题,我的 SOA 具有网站消费服务和网站托管服务。我的一项服务接受图像(字节 [])。当我将 83kb 的图像传递给 WCF 服务时,我收到以下错误:

读取 XML 数据时已超出最大数组长度配额 (16384)。可以通过更改创建 XML 阅读器时使用的 XmlDictionaryReaderQuotas 对象的 MaxArrayLength 属性来增加此配额。

我的服务器端配置中没有此服务的特定配置。以下是我使用的 Web 应用程序 web.config 文件中的内容:

<system.serviceModel>
    <bindings>
      <basicHttpBinding>
          <binding name="BasicHttpBinding_ISchoolSettings" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="false">
          <readerQuotas maxDepth="32" maxStringContentLength="998192" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="2147483647" />
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://localhost:50977/Interface/Schools.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISchoolSettings" contract="Services.Schools.ISchoolSettings" name="BasicHttpBinding_ISchoolSettings" />
    </client>
  </system.serviceModel>

.net 似乎忽略了我MaxArrayLength=2147483647为此绑定配置设置的事实。

我在.net 4.0这里使用。奇怪的是,我有一台机器,我没有.net 4.5在那台机器上收到这个错误!!

我已经尝试了各种方法,但似乎无法解决这个问题。

4

1 回答 1

1

确保更改客户端配置和服务配置上的设置。有时查看异常实际发生的位置可能会有点令人困惑。

于 2013-06-13T15:53:44.417 回答