9

I gone through this MSDN link but could not get enough details

Can any one explain me with a scenario where and why i need to set this value.

I came across the setting when i was trying to send a Data Contract object to service method and was getting exception The remote server returned an error: Not Found.,

My data contract is having List<>property and was getting exception if list contains 7 object it was working fine with 6 object.

I guess it was issue with Size of Data Contract.

When i changed my binding in config file

<readerQuotas maxDepth="64" maxStringContentLength="2147483647"
        maxArrayLength="2147483647" maxBytesPerRead="4096" />

to

<readerQuotas maxDepth="128" maxStringContentLength="2147483647"
        maxArrayLength="2147483647" maxBytesPerRead="4096" />

the Data Contract object reached to Service for processing.

PramodChoudhari
  • 2,503
  • 12
  • 33
  • 46

1 Answers1

13

The readerQuota settings are used to limit bindings as specified by the attributes. If a request exceeds any of those limits the WCF service will automatically reject the request (very low on the comms stack I believe) to do as little processing on the request as is possible.

The idea being that the service commit as few resources as possible to service the request (if it exceeds a given limit) to help fend off Denial-of-Service attacks - DDOS.

Note that the readQuota limits can be set on both server and client. This allows clients to be protected against fraudulent servers as well as protecting the servers.

Smudge202
  • 4,689
  • 2
  • 26
  • 44