Thanks JasonXu for the post - It is important to consider if it makes sense to increase these binding default values. From the https://docs.microsoft.com/en-us/dotnet/api/system.servicemodel.basichttpbinding.readerquotas?view=netframework-4.0:
MaxReceivedMessageSize - the maximum size, in bytes, for a message that can be received on a channel configured with this binding
readerQuotas - this complex object sets constraints on the complexity of SOAP messages that can be processed
maxDepth - maximum nested node depth
maxStringContentLength - the maximum string length
maxArrayLength - the maximum allowed array length
So, if the particular scenario should not receive messages that contain unusually large strings or large number of arrays, then it is valid to reject messages that contain these. For example, if I have a message that contains a list of addresses. If the system in question only can have 10 addresses then why should the service receive messages that contain hundreds or thousands of addresses?