【问题标题】:What is the point of WCF MaxReceivedMessageSizeWCF MaxReceivedMessageSize 的意义何在
【发布时间】:2010-01-22 13:29:13
【问题描述】:

我们注意到这个值的唯一一次似乎是当服务因为该值太低而崩溃时。解决此问题的快速方法是将其设置为一个非常大的数字。那就没问题了。

我想知道的是,将这个值设置得高有什么负面影响吗?

我可以看到它可能会针对拒绝服务攻击提供一些保护,但它还有其他功能吗?

【问题讨论】:

  • 我认为重点是作为 DoS 攻击的保护,就像你说的那样

标签: wcf maxreceivedmessagesize


【解决方案1】:

它有助于限制 WCF 服务器的压力。如果您允许 1'000 个连接,并且每个连接都允许向您发送 1 MB 数据 - 您的服务器可能需要 1 GB RAM - 否则可能会发生大量交换/垃圾。

消息大小的限制(以及并发连接/调用的限制)有助于将 RAM 使用率(以及 CPU 使用率)保持在可管理的水平。

它还允许您根据您的服务器进行扩展。如果您有一个单核 CPU 和 4 GB 或 RAM,您可能无法处理与拥有 16 路 CPU 和 32 GB 或更多 RAM 一样多的流量。通过包括 MaxReceivedMessageSize 在内的各种设置,您可以调整 WCF 环境以适应底层硬件的功能。

当然,正如您已经提到的:WCF 中的许多设置都保持关闭或设置为较低的值,以阻止恶意用户通过 DoS 攻击淹没您的服务器并将其关闭。

【讨论】:

  • 感谢您的回答。只是为了确保我已经理解它。在您的示例中,如果您允许 1MB 并且连接发送 10kB 的消息。将在服务器上分配 1MB 的内存,还是只使用 10Kb。
  • 据我所知,如果服务调用需要 10kb,它将分配 10kb - 不多。 1 MB 的限制就是这样 - 一个上限。如果服务调用请求超过 1 MB,它将被拒绝。但是 WCF 不会只是简单地分配 1 MB 而不需要它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-13
  • 2023-03-22
  • 2013-09-21
  • 1970-01-01
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多