Megosztás a következőn keresztül:


A szolgáltatás alapértelmezett viselkedése

Az alapértelmezett minta bemutatja, hogyan konfigurálhatók a szolgáltatás viselkedési beállításai. A minta a szolgáltatásszerződést megvalósító ICalculator első lépéseken alapul. Ez a minta explicit módon határozza meg a szolgáltatás viselkedését és működési viselkedését az és OperationBehaviorAttribute az ServiceBehaviorAttribute 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.

Feljegyzé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 környezeti módját adja 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 windowsos űrlapokat használjon-e WindowsFormsSynchronizationContext .
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 újra lesznek-e újrahasznosítottak 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ásműveletek során indított hívások System.Threading.Thread.Sleep() 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 minta beállítása, összeállítása és futtatása

  1. Győződjön meg arról, hogy elvégezte a Windows Communication Foundation-minták egyszeri beállítási eljárását.

  2. A megoldás C# vagy Visual Basic .NET kiadásának létrehozásához kövesse a Windows Communication Foundation-minták készítéséhez szükséges utasításokat.

  3. 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ásával kapcsolatos utasításokat.