次の方法で共有


スロットリング

調整のサンプルでは、調整コントロールの使用を示します。 調整コントロールは、リソースの過剰消費を防ぐために、同時呼び出し、インスタンス、またはセッションの数に制限を設定します。 調整動作は、サービス構成ファイルの設定で指定されます。 このサンプルは、電卓サービスを実装する 作業の開始 に基づいています。

このサンプルでは、クライアントはコンソール アプリケーション (.exe) であり、サービスはインターネット インフォメーション サービス (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;
}

サンプルを実行すると、操作要求と応答がクライアント コンソール ウィンドウに表示されます。 Add メソッドと Subtract メソッドが同時に実行され、Multiply メソッドと Divide メソッドが同時に実行され、2 つ以下のメソッドを同時に実行できないことが証明されるため、調整が示されます。

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. Windows Communication Foundation サンプル One-Time セットアップ手順を実行していることを確認します。

  2. ソリューションの C# または Visual Basic .NET エディションをビルドするには、「Windows Communication Foundation サンプルのビルド」の手順に従います。

  3. 単一または複数のコンピューター間の構成でサンプルを実行するには、「Windows Communication Foundation Samplesの実行」の手順に従います。