2011-06-06 96 views
7

I gone through this MSDN link but could not get enough detailsWCF绑定中的<readerQuotas>是什么?

任何人都可以解释我的场景,为什么我需要设置此值。

我遇到了设置,当我试图发送一个数据合同对象服务方法,并得到异常远程服务器返回一个错误:找不到。,

我的数据合同有列表<>属性,并且如果列表包含7个对象,它正在使用6对象正常工作时正在获取异常。

我想这是数据合同的大小问题。

当我改变了我的配置文件

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

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

达到服务进行处理的数据合同对象绑定。

回答

8

readerQuota设置用于限制由属性指定的绑定。如果请求超过了这些限制中的任何一个,那么WCF服务会自动拒绝请求(我相信通信栈非常低),尽可能少地处理请求。

这个想法是服务提交尽可能少的资源来服务请求(如果它超过了给定的限制)以帮助防止Denial-of-Service attacks - DDOS

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