Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A szabályozási minta bemutatja a szabályozási vezérlők használatát. A szabályozási vezérlők korlátozza az egyidejű hívások, példányok vagy munkamenetek számát az erőforrások túlzott felhasználásának megakadályozása érdekében. A szabályozás viselkedését a szolgáltatás konfigurációs fájljának beállításai határozzák meg. Ez a minta a számológép szolgáltatást megvalósító Első lépések részen alapul.
Ebben a mintában az ügyfél egy konzolalkalmazás (.exe), és a szolgáltatást az Internet Information Services (IIS) üzemelteti.
Megjegyzés:
A minta telepítési eljárása és összeállítási utasításai a témakör végén találhatók.
A szolgáltatáskonfigurációs fájl a serviceThrottling< szabályozási vezérlőit> határozza meg, ahogyan az a következő mintakonfigurációban is látható.
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceDebug includeExceptionDetailInFaults="False" />
<serviceMetadata httpGetEnabled="True"/>
<!-- Specify throttling behavior -->
<serviceThrottling maxConcurrentCalls="2"
maxConcurrentInstances="10"/>
</behavior>
</serviceBehaviors>
</behaviors>
A konfigurált módon a szolgáltatás az egyidejű hívások maximális számát 2-re, az egyidejű példányok maximális számát pedig 10-re korlátozza.
A fojtás szemléltetéséhez az alábbiak szerint határozzuk meg a várakozási időt a szolgáltatási módszereken:
public double Add(double n1, double n2)
{
System.Threading.Thread.Sleep(2000);
return n1 + n2;
}
A minta futtatásakor a műveleti kérelmek és a válaszok megjelennek az ügyfélkonzol ablakában. Az Add és a Subtract függvények egyidejűleg kerülnek végrehajtásra, akárcsak a Szorzás és Osztás függvények, ezzel bizonyítva, hogy egyszerre legfeljebb két függvény hajtható végre egyidejűleg, ami a terhelés szabályozását szemlélteti.
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 . . .
A példa beállítása, elkészítése és futtatása
Győződjön meg arról, hogy elvégezte a Windows Communication Foundation-minták One-Time beállítási eljárását.
A megoldás C# vagy Visual Basic .NET kiadásának létrehozásához kövesse Windows Communication Foundation-mintákcímű témakör utasításait.
Ha a mintát egy vagy több gép közötti konfigurációban szeretné futtatni, kövesse A Windows Communication Foundation-minták futtatásacímű témakör utasításait.