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 ICalculator kontrakt služby. 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á Internetová informační služba (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 vzorového kódu a jak OperationBehaviorAttribute 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 model Windows Forms aplikacích.
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í chybovou podmínku.

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

Chování operace Popis
TransactionAutoComplete Určuje, zda dokončení operace služby potvrdí aktuální transakci.
TransactionScopeRequired Určuje, zda operace služby je zařazena do transakce toku klienta.
Impersonation Určuje, jestli operace služby zosobní identitu volajícího.
ReleaseInstanceMode Určuje, jestli se instance služby recyklují na začátku nebo na konci volání operace 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í System.Threading.Thread.Sleep() provedený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.

Nastavení, sestavení a spuštění ukázky

  1. Ujistěte se, že jste pro ukázky windows Communication Foundation provedli jednorázovou instalační proceduru.

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

  3. Pokud chcete spustit ukázku v konfiguraci s jedním nebo více počítači, postupujte podle pokynů v části Spuštění ukázek windows Communication Foundation.