【问题标题】:What are the internal limits to WCFWCF 的内部限制是什么
【发布时间】:2009-09-06 22:49:35
【问题描述】:

WCF 对其施加了许多限制,以防止 DoS 攻击和其他开发人员无脑。这些限制是什么?以及如何覆盖它们?

具体来说,如果我要尝试在短时间内向各种不同的客户端发送大量消息,那么内部 WCF 限制是多少,它们可能会导致消息发送缓慢。

PS:这个问题是我的previous question 的一个更短的版本,没有引起太多关注。

编辑 我已经回答了original question。问题是我的异步调用正在变成同步调用。

【问题讨论】:

  • 看你之前的问题,我想你可能会草率下结论。将其简化为一个简单的例子,看看行为是否重现。 然后调查限制。您假设您看到的行为是一个限制问题,但可能不是。
  • 完全同意,但是我的公司不会对花费时间制作一个琐碎/确定性的版本感到高兴。调整配置选项要简单得多!我怀疑我很快就会启用跟踪。

标签: .net wcf networking performance


【解决方案1】:

可能涉及的变量太多,我发现这个问题太笼统而无法回答。您可能想查看以下内容:

但是由于安全性是一个非常复杂的主题,并且正确处理很重要(它只与最薄弱的环节一样强大)而且 WCF 有很多不同的选项、配置属性等......所以买一些书和真的很熟悉内情。

我个人可以推荐Programming WCF 2nd editionLearning WCF: A hands-on guide


在阅读了您之前的问题后,我还建议您尝试跟踪。 WCF 记录了很多关于内部发生的事情以及何时达到某些限制的信息。有关如何配置它的更多信息,请参阅http://msdn.microsoft.com/en-us/library/ms733025.aspx。请特别注意 XmlWriterTraceListener 如何不是线程安全的,并且可能会阻塞执行流,这会严重影响性能(在调试性能时不是您想要的)以及如何克服这个问题。

最后,我认为 John Saunders 的建议非常有效,如果您确实从一个简单的示例开始并且没有遇到此问题,那么我建议您以小增量(或以二进制排序类型的方式)重新添加当前功能) 看看是什么导致了这个问题。

【讨论】:

  • 对不起(故意)含糊不清的问题。我确保我首先查看了所有配置选项。我怀疑我很快就会启用跟踪。
【解决方案2】:

这就是我被难住并花了几个小时才弄清楚的那个。当您将 IIS 作为 Web 服务器时,ASP.net 设置限制了最大请求大小。因此,wcf 服务将无法接受超过该大小的请求。在 web.config 中,您需要添加/更改以下设置(默认为 32 兆) -

<system.web>
   <httpRuntime maxRequestLength="32767"/>
</system.web>

当然,在提高此限制时,您必须意识到可能出现的 DOS 问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 2016-10-23
    • 2019-11-30
    • 2010-09-11
    • 2012-03-22
    • 2011-09-04
    • 2019-05-20
    相关资源
    最近更新 更多