Ограничение скорости

В примере регулирования демонстрируется использование элементов управления регулированием. Ограничители устанавливают пределы на количество одновременных вызовов, экземпляров или сеансов для предотвращения чрезмерного потребления ресурсов. Поведение регулирования указывается в параметрах файла конфигурации службы. Этот пример основан на руководстве «Начало работы», которое реализует сервис калькулятора.

В этом примере клиентом является консольное приложение (.exe), а служба хостится с помощью Internet Information Services (IIS).

Замечание

Процедура установки и инструкции по сборке для этого примера находятся в конце этого раздела.

Файл конфигурации службы задает элементы управления регулированием <в serviceThrottling>, как показано в следующем примере конфигурации.

<behaviors>
  <serviceBehaviors>
    <behavior name="CalculatorServiceBehavior">
      <serviceDebug includeExceptionDetailInFaults="False" />
      <serviceMetadata httpGetEnabled="True"/>
      <!-- Specify throttling behavior -->
    <serviceThrottling maxConcurrentCalls="2"
                       maxConcurrentInstances="10"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

В данной конфигурации служба ограничивает максимальное число одновременных вызовов до 2 и максимальное число одновременных экземпляров до 10.

Чтобы продемонстрировать регулирование, мы определяем время сна в методах службы следующим образом:

public double Add(double n1, double n2)
{
    System.Threading.Thread.Sleep(2000);
    return n1 + n2;
}

При запуске примера запросы и ответы операции отображаются в окне консоли клиента. Методы Сложения и Вычитания выполняются одновременно, также как и методы Умножения и Деления, что доказывает, что не более двух методов могут выполняться одновременно, демонстрируя ограничение.

Press <ENTER> to terminate client.
Add(100,15.99)
Subtract(145,76.54)
Multiply(9,81.25)
Divide(22,7)

Add Result: 115.99
Subtract Result: 68.46
Multiply Result: 731.25
Divide Result: 3.14285714285714

Press any key to continue . . .

Настройка, сборка и запуск примера

  1. Убедитесь, что вы выполнили процедуру настройки One-Time для образцов Windows Communication Foundation.

  2. Чтобы создать версию решения на C# или Visual Basic .NET, следуйте инструкциям по сборке примеров Windows Communication Foundation .

  3. Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в запуска примеров Windows Communication Foundation.