List
クライアント アプリケーションにを返す WCF サービスがあります。データベースの列の 1 つはbyte[]
です。このオブジェクトのリストを返そうとするNetDispatcherFaultException
と、次の内部例外のみが返されます。
「XML データの読み取り中に、最大配列長クォータ (16384) を超えました。このクォータは、XML リーダーの作成時に使用される XmlDictionaryReaderQuotas オブジェクトの MaxArrayLength プロパティを変更することで増やすことができます。行 1、位置 38697。」
この後グーグルで調べたところ、 で を増やす必要があることがわかったので、次maxArrayLength
のweb.config
ようにしました。
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https"/>
<add binding="basicHttpBinding" scheme="http"
bindingConfiguration="CrudserviceBinding" />
</protocolMapping>
<bindings>
<basicHttpBinding>
<binding name="CrudserviceBinding" maxReceivedMessageSize="52428800" >
<readerQuotas maxStringContentLength="10242880"
maxArrayLength="10242880" />
</binding>
</basicHttpBinding>
</bindings>
これはクライアント側の私の app.config です:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_ICrudService">
<readerQuotas maxStringContentLength="5242880"
maxArrayLength="52428800" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost/My.Project/CrudService.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_ICrudService"
contract="MobileCrudService.ICrudService"
name="BasicHttpBinding_ICrudService" />
</client>
</system.serviceModel>
</configuration>
これをもう一度試すと、WCF サービスは同じ例外を返します。誰かがこれにどう対処すべきか説明できますか?