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
Ujistěte se, že jste pro ukázky windows Communication Foundation provedli jednorázovou instalační proceduru.
Pokud chcete sestavit edici C# nebo Visual Basic .NET řešení, postupujte podle pokynů v části Sestavení ukázek windows Communication Foundation.
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.