データ コントラクトの一部としてバイト配列を受け入れる WCF サービス操作があります。このサービスは (インターネットではなく) 内部でのみ公開されており、クォータを増やして 10 MB のバイト配列を許可したいと考えています。
このサービスは IIS7 でホストされています。デフォルトの長さを超えるバイト配列を送信しようとすると、次の例外メッセージが表示されます。
タイプ MyService.ServiceContracts.Data のオブジェクトの逆シリアル化でエラーが発生しました。XML データの読み取り中に、最大配列長のクォータ (16384) を超えました。このクォータは、XML リーダーの作成時に使用される XmlDictionaryReaderQuotas オブジェクトの MaxArrayLength プロパティを変更することで増やすことができます。行 1、位置 22991。
構成は次のとおりです。
<system.serviceModel>
<netTcpBinding>
<binding name="largeBinaryBinding" maxReceivedMessageSize="10001000"
maxBufferPoolSize="80008000" maxBufferSize="10001000"
receiveTimeout="00:01:00" openTimeout="00:01:00"
closeTimeout="00:01:00" sendTimeout="00:01:00">
<readerQuotas maxArrayLength="10000000" />
</binding>
</netTcpBinding>
<services>
<service name="MyService">
<endpoint binding="netTcpBinding"
bindingConfiguration="largeBinaryBinding"
bindingNamespace="http://my.services.co.uk/MyService"
contract="Services.MyService.ServiceContracts.IMyService" />
</service>
</services>
</system.serviceModel>
したがって、私の構成ではより大きなメッセージを許可していますが、IIS はこれを無視しているようです。これを停止して大きなメッセージを通過させるにはどうすればよいですか?