Sdílet prostřednictvím


Výchozí chování služby

Výchozí ukázka ukazuje, jak lze nakonfigurovat nastavení chování služby. Ukázka je založená na Začínáme, které implementuje smlouvu o službách ICalculator. Tato ukázka explicitně definuje chování služeb a chování operací pomocí atributůServiceBehaviorAttribute.OperationBehaviorAttribute Chování v konfiguračních souborech nebo imperativním chování můžete nakonfigurovat v kódu (jak ukazuje tato ukázka).

V této ukázce je klient konzolovou aplikací (.exe) a služba je hostovaná internetovou informační službou (IIS).

Poznámka:

Postup nastavení a pokyny k sestavení pro tuto ukázku najdete na konci tohoto tématu.

Třída služby určuje chování pomocí ServiceBehaviorAttribute a OperationBehaviorAttribute, jak je znázorněno v následující ukázce kódu. Všechny zadané hodnoty jsou výchozí hodnoty.

[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;
    }
    ...
}

Chování služby je určeno atributem ServiceBehaviorAttribute . Následující tabulka popisuje některé z těchto chování.

Chování služby Popis
AutomaticSessionShutdown Automaticky vypne relaci v požadavku klienta.
ConcurrencyMode Určuje režim souběžnosti pro každou instanci služby.
InstanceContextMode Určuje kontextový režim instance.
UseSynchronizationContext Určuje, zda se má použít zadaný kontext synchronizace, pokud je nastavena. Tuto možnost použijte, pokud chcete určit, jestli se má použít WindowsFormsSynchronizationContext v aplikacích Modelu Windows Forms.
IncludeExceptionDetailInFaults Určuje, zda mají být obecně neošetřené výjimky spuštění převedeny na Fault<string> a odeslány jako chybová zpráva.
TransactionIsolationLevel Určuje úroveň izolace pro transakce.
ValidateMustUnderstand Určuje, zda neočekávané hlavičky zprávy způsobují stav chyby.

Chování operací je určeno pomocí atributu OperationBehaviorAttribute. Následující tabulka popisuje některé z těchto chování.

Provozní chování Popis
TransactionAutoComplete Určuje, zda dokončení operace služby potvrdí aktuální transakci.
TransactionScopeRequired Určuje, zda je operace služby zařazena do klientem řízené transakce.
Impersonation Určuje, jestli operace služby přebírá identitu volajícího.
ReleaseInstanceMode Určuje, zda se instance služby recyklují na začátku nebo na konci volání služby.

Při spuštění ukázky se požadavky na operace a odpovědi zobrazí v okně konzoly klienta. Zpoždění mezi voláními je výsledkem volání na System.Threading.Thread.Sleep() uskutečněných v operacích služby. Zbývající ukázky chování vysvětlují toto chování podrobněji. Stisknutím klávesy ENTER v okně klienta klienta ukončete klienta.

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.

Jak nastavit, sestavit a spustit ukázku

  1. Ujistěte se, že jste provedli instalační proceduru One-Time pro ukázky Windows Communication Foundation.

  2. Pokud chcete sestavit verzi C# nebo Visual Basic .NET řešení, postupujte podle pokynů v Sestavení ukázek Windows Communication Foundation.

  3. Pokud chcete spustit ukázku v konfiguraci pro jeden počítač nebo pro více počítačů, postupujte podle pokynů v Spuštění ukázek Windows Communication Foundation.