WCF的内部限制是什么?

时间:2009-09-06 22:49:35

标签: .net wcf networking performance

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

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

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

修改 我回答了original question。我的异步调用问题正在转变为同步调用。

2 个答案:

答案 0 :(得分:4)

有太多可能涉及的变量,我觉得这个问题太笼统而无法回答。您可能想要查看的一些内容是:

但是,由于安全性是一个非常复杂的主题,并且对于正确而言很重要(它只有最薄弱的环节那么强大)而且WCF有很多不同的选项,配置属性等等......获取一些书籍会很聪明真的得到了与内在的关系。

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


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

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

答案 1 :(得分:0)

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

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

当然,在增加此限制时,您必须认识到可能出现的DOS问题。