为什么WCF将并发连接限制为5?

时间:2009-03-26 16:18:09

标签: wcf http iis concurrency

我在Vista上的II7中托管了一个WCF服务(basicHttpBinding),我期望同时处理许多请求。我试图通过在测试应用程序中调用200个线程并调用WCF服务来加载测试服务。我在与服务器以及其他多台计算机相同的机器上运行此测试应用程序,我总是得到相同的结果 - 使用的工作人员不超过5个。这是WCF,HTTP还是IIS瓶颈?

5 个答案:

答案 0 :(得分:11)

这是防止拒绝服务攻击的功能。开箱即用,WCF旨在确保安全。 检查服务行为,在msdn中查找maxConcurrentCalls和maxConcurrentSessions配置。我认为限制是10,但我可能是错的。

答案 1 :(得分:5)

以下是Juval Lowy在MSDN杂志上发表的关于WCF实例管理的精彩文章: http://msdn.microsoft.com/en-us/magazine/cc163590.aspx 从2006年6月开始发行(如果MSDN将再次发布他们的链接)。

它解释了管理服务生命周期的技术和设置(限制是其中之一),并显示了应用哪些设置来增加并发连接数。

答案 2 :(得分:2)

默认情况下,WCF是安全的。这意味着默认设置限制了您可以对WCF服务执行的操作,以避免拒绝服务攻击等操作。这对于面向互联网的Web服务非常有用,但它有时会让您感到困惑。根据您使用的绑定和行为,它可以是任何一个中的设置。

Here概述了这些设置 - 您需要进行一些实验来确定究竟是什么在咬你。

答案 3 :(得分:2)

不,这只是WCF中的默认限制设置。它在服务配置文件中的行为的serviceThrottling元素中配置,该文件具有maxConcurrentSessions属性。默认值为5,但您可以将其设置为您想要的任何值。

答案 4 :(得分:0)

从.NET 4.5开始,默认连接数为(100 *处理器数) - ServiceThrottlingBehavior.MaxConcurrentSessions Property