Что происходит в WCF, если есть дополнительный запрос на ограничение лимита в MaxConcurrentCalls? - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь ограничить максимальное количество одновременных вызовов к моей службе WCF. Я ограничиваю их следующим образом:

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

Мой вопрос таков:

  1. Что произойдет, если есть дополнительный запрос, чем тот, который установлен в "maxConcurrentCalls"? Будут ли они в очереди или будут отклонены?

  2. Получит ли пользователь какую-либо ошибку / исключение при достижении максимального вызова?

  3. Я хочу, чтобы дополнительный запрос был поставлен в очередь, и пользователь не должен получать никаких ошибок или исключений. Что для этого нужно сделать?

1 Ответ

0 голосов
/ 28 октября 2018

Удушение предназначено для предотвращения чрезмерного распределения и использования ресурсов.Когда настройки газа включены, если параметры ограничения тока превышены, WCF автоматически помещает вызывающего абонента в очередь ожидания, а затем обрабатывает вызовы по очереди.Если время ожидания клиента истекло.Вы получите TimeoutException.Короче говоря, Throttle предназначен для предотвращения сбоев системы, но только тогда, когда высокие нагрузки занимают небольшую часть нагрузки.Если вы находитесь в состоянии высокой нагрузки в течение длительного времени, и Throttle в конечном итоге приводит к превышению времени ожидания всех вызывающих абонентов, рекомендуется вначале рассмотреть проект

Регулирование службы WCF

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

...