Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az alapértelmezett minta bemutatja, hogyan konfigurálhatók a szolgáltatás viselkedési beállításai. A minta a Kezdő lépések-en alapul, amely megvalósítja a ICalculator szolgáltatásszerződést. Ez a minta explicit módon határozza meg a szolgáltatás és az operációs viselkedést a ServiceBehaviorAttribute és OperationBehaviorAttribute attribútumok használatával. Konfigurálhat viselkedést konfigurációs fájlokban vagy kódban is (ahogy ez a példa is mutatja).
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ásosztály az alábbi kódmintában látható módon határozza meg a ServiceBehaviorAttributeOperationBehaviorAttribute viselkedést. Minden megadott érték az alapértelmezett érték.
[ServiceBehavior(
AutomaticSessionShutdown=true,
ConcurrencyMode=ConcurrencyMode.Single,
InstanceContextMode=InstanceContextMode.PerSession,
IncludeExceptionDetailInFaults=false,
UseSynchronizationContext=true,
ValidateMustUnderstand=true)]
public class CalculatorService : ICalculator
{
[OperationBehavior(
TransactionAutoComplete=true,
TransactionScopeRequired=false,
Impersonation=ImpersonationOption.NotAllowed)]
public double Add(double n1, double n2)
{
System.Threading.Thread.Sleep(1600);
return n1 + n2;
}
...
}
A szolgáltatás viselkedését az ServiceBehaviorAttribute attribútum határozza meg. Az alábbi táblázat néhány ilyen viselkedést ismertet.
| Szolgáltatás viselkedése | Leírás |
|---|---|
| AutomaticSessionShutdown | Automatikusan leállítja a munkamenetet az ügyfél kérésére. |
| ConcurrencyMode | Az egyes szolgáltatáspéldányok egyidejűségi módját adja meg. |
| InstanceContextMode | A példány kontextus módját határozza meg. |
| UseSynchronizationContext | Meghatározza, hogy a megadott szinkronizálási környezetet használja-e, ha van beállítva. Ezt akkor használja, ha azt szeretné szabályozni, hogy használja-e a WindowsFormsSynchronizationContext Windows Forms alkalmazásokban. |
| IncludeExceptionDetailInFaults | Meghatározza, hogy az általános nem kezelt végrehajtási kivételeket hibaüzenetként kell-e konvertálni Fault<string> és elküldeni. |
| TransactionIsolationLevel | A tranzakciók elkülönítési szintjét adja meg. |
| ValidateMustUnderstand | Meghatározza, hogy a váratlan üzenetfejlécek hibát okoznak-e. |
A műveleti viselkedések az attribútum használatával OperationBehaviorAttribute vannak megadva. Az alábbi táblázat néhány ilyen viselkedést ismertet.
| Művelet viselkedése | Leírás |
|---|---|
| TransactionAutoComplete | Meghatározza, hogy a szolgáltatásművelet befejezése véglegesíti-e az aktuális tranzakciót. |
| TransactionScopeRequired | Meghatározza, hogy a szolgáltatásművelet szerepel-e egy ügyfél által feldolgozott tranzakcióban. |
| Impersonation | Meghatározza, hogy a szolgáltatásművelet megszemélyesíti-e a hívó identitását. |
| ReleaseInstanceMode | Meghatározza, hogy a szolgáltatáspéldányok újrahasznosításra kerülnek-e a szolgáltatásműveleti hívás elején vagy végén. |
A minta futtatásakor a műveleti kérelmek és a válaszok megjelennek az ügyfélkonzol ablakában. A hívások közötti késés a szolgáltatás működése során végrehajtott System.Threading.Thread.Sleep() hívások eredménye. A többi viselkedésminta részletesebben ismerteti ezeket a viselkedéseket. Nyomja le az ENTER billentyűt az ügyfélablakban az ügyfél leállításához.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Press <ENTER> to terminate client.
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.