25次通话后,WCF停止响应

时间:2012-01-10 18:12:07

标签: c# .net wcf

我有一个WCF服务,在多次调用后停止响应......

我进行了测试,我在25次通话后发现我需要重置iis / vs i ..

在客户端,每个功能都以

开头
ServiceClient vs = new ServiceClient();

并以

结束
vs.Close();

所以我猜每个电话都是连接?

我需要在何处以及如何配置WCF以接受大量连接?

感谢。

p.s我正在使用.net 4.0

1 个答案:

答案 0 :(得分:3)

您的WCF服务将具有最大并发呼叫者数量 - 25可能是默认值。

这被设置为较低的默认值 - 按设计,因此恶意调用者不能简单地关闭您的服务器。

您可以在服务器端指定一项名为ServiceThrottling的服务行为,以便您定义更高的值 - 请参阅relevant MSDN documentation for details

基本上,在服务器端,您需要定义此行为:

<serviceBehaviors>
   <behavior  name="Throttled">
      <serviceThrottling 
        maxConcurrentCalls="100" 
        maxConcurrentSessions="100" 
        maxConcurrentInstances="100" />
    </behavior>
</serviceBehaviors>

然后确保您的服务引用该行为:

<service name="YourServiceName" behaviorConfiguration="Throttled"> 
   ....
</service>