調整のサンプルでは、調整コントロールの使用を示します。 調整コントロールは、リソースの過剰消費を防ぐために、同時呼び出し、インスタンス、またはセッションの数に制限を設定します。 調整動作は、サービス構成ファイルの設定で指定されます。 このサンプルは、電卓サービスを実装する 作業の開始 に基づいています。
このサンプルでは、クライアントはコンソール アプリケーション (.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 . . .
サンプルを設定、ビルド、実行するには
Windows Communication Foundation サンプル のOne-Time セットアップ手順を実行していることを確認します。
ソリューションの C# または Visual Basic .NET エディションをビルドするには、「Windows Communication Foundation サンプルのビルド」の手順に従います。
単一または複数のコンピューター間の構成でサンプルを実行するには、「Windows Communication Foundation Samplesの実行」の手順に従います。