節流範例示範如何使用節流控件。 節流控制會限制並行呼叫、實例或會話的數目,以防止過度耗用資源。 節流行為是在服務配置檔案的設定中指定。 這個範例是以實作計算機服務的使用者入門範例為基礎。
在此範例中,用戶端是控制台應用程式(.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;
}
當您執行範例時,作業要求和回應會顯示在用戶端控制台視窗中。 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 . . .