什么是WCF绑定中的<readerQuotas>?

Pra*_*ari 8 c# wcf wcf-binding

我经历了这个MSDN链接,但无法获得足够的细节

任何人都可以用一个场景向我解释我需要设置这个值的地方和原因.

当我尝试将Data Contract对象发送到服务方法并获得异常时,我遇到了这个设置.远程服务器返回了一个错误:Not Found.,

我的数据合同具有List <>属性,并且如果列表包含7个对象它正在使用6个对象正常工作,则会出现异常.

我猜这是数据合同大小的问题.

当我在配置文件中更改我的绑定

<readerQuotas maxDepth="64" maxStringContentLength="2147483647"
        maxArrayLength="2147483647" maxBytesPerRead="4096" />
Run Code Online (Sandbox Code Playgroud)

<readerQuotas maxDepth="128" maxStringContentLength="2147483647"
        maxArrayLength="2147483647" maxBytesPerRead="4096" />
Run Code Online (Sandbox Code Playgroud)

数据协定对象已到达服务进行处理.

Smu*_*202 10

readerQuota设置用于限制属性指定的绑定.如果请求超过任何这些限制,WCF服务将自动拒绝该请求(我认为通信栈非常低),尽可能少地处理请求.

这个想法是服务提交尽可能少的资源来服务请求(如果它超过给定的限制)以帮助抵御拒绝服务攻击 - DDOS.

请注意,可以在服务器和客户端上设置readQuota限制.这样可以保护客户端免受欺诈性服务器的侵害,也可以保护服务器.