c# - WCF 绑定(bind)中的 <readerQuotas> 是什么?

标签 c# wcf wcf-binding

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

谁能给我解释一个场景,我需要在哪里以及为什么需要设置这个值。

当我尝试将数据协定对象发送到服务方法时遇到异常远程服务器返回错误:未找到。

我的数据契约(Contract)具有 List<> 属性,如果列表包含 7 个对象时出现异常,但它在 6 个对象时工作正常。

我猜这是数据契约(Contract)大小的问题。

当我在配置文件中更改我的绑定(bind)时

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

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

数据契约对象到达服务进行处理。

最佳答案

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

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

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

关于c# - WCF 绑定(bind)中的 <readerQuotas> 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6249077/

相关文章:

c# - WCF 多重绑定(bind)

c# - 使用 C# 获取应用程序打开的所有 TCP 连接

WCF、REST、SSL、客户端、自定义证书验证

wcf-binding - IdentityServer 2 中的 WS-Trust MEX 端点为 GET 请求返回 HTTP 400

c# - EntityFramework6 配置与 WCF 服务边界

c# - Windows 身份验证后的自定义安全模块

c# - 未找到 WCF 服务端点

c# - 处理托管资源时堆栈溢出

c# - MVC 5 错误处理 Web.Config customErrors

c# - 如何在多个 Linq IQueryable 上执行 sql Union