如果还有其他要求在MaxConcurrentCalls中设置限制,则在WCF中会发生什么?

时间:2018-10-26 08:08:06

标签: wcf service throttling

我正在尝试限制对WCF服务的最大并发调用。我对它们的限制如下:

<behaviors>
      <serviceBehaviors>
        <behavior  name="Throttled">
          <serviceThrottling
            maxConcurrentCalls="4"
          />
        </behavior>
      </serviceBehaviors>
</behaviors>

我的问题如下:

  1. 如果请求超出“ maxConcurrentCalls”中设置的请求,会发生什么?他们会排队还是被拒绝?

  2. 在达到maxconcurrent调用时,用户会收到任何错误/异常吗?

  3. 我希望其他请求排队,并且用户不应出现任何错误或异常。为此应该做什么?

1 个答案:

答案 0 :(得分:1)

限制的目的是避免过多分配和使用资源。启用“油门”设置后,如果超出了电流限制设置,则WCF会自动将呼叫者置于等待队列中,然后依次处理呼叫。如果客户端在等待期间超时。您将获得TimeoutException。简而言之,节流阀旨在防止系统崩溃,但仅当高负载占据一小部分负载时才如此。如果您长时间处于高负载状态,并且Throttle最终导致所有调用者超时,建议您从一开始就考虑设计

WCF Service Throttling

https://blogs.msdn.microsoft.com/wenlong/2009/07/26/wcf-4-higher-default-throttling-settings-for-wcf-services/