Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In het standaardvoorbeeld ziet u hoe instellingen voor servicegedrag kunnen worden geconfigureerd. Het voorbeeld is gebaseerd op de Getting Started, waarmee het ICalculator service contract wordt geïmplementeerd. In dit voorbeeld worden servicegedrag en bewerkingsgedrag expliciet gedefinieerd met behulp van de ServiceBehaviorAttribute en OperationBehaviorAttribute kenmerken. U kunt gedrag configureren in configuratiebestanden of imperatief in code (zoals in dit voorbeeld wordt gedemonstreert).
In dit voorbeeld is de client een consoletoepassing (.exe) en wordt de service gehost door Internet Information Services (IIS).
Opmerking
De installatieprocedure en build-instructies voor dit voorbeeld bevinden zich aan het einde van dit onderwerp.
De serviceklasse geeft gedrag op met de ServiceBehaviorAttribute en de OperationBehaviorAttribute zoals wordt weergegeven in het volgende codevoorbeeld. Alle opgegeven waarden zijn de standaardwaarden.
[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;
}
...
}
Servicegedrag wordt opgegeven met het ServiceBehaviorAttribute kenmerk. In de volgende tabel worden enkele van deze gedragingen beschreven.
| Servicegedrag | Beschrijving |
|---|---|
| AutomaticSessionShutdown | Hiermee wordt automatisch een sessie afgesloten op de aanvraag van de client. |
| ConcurrencyMode | Hiermee geeft u de gelijktijdigheidsmodus voor elk service-exemplaar. |
| InstanceContextMode | Hiermee wordt de instantiecontextmodus gespecificeerd. |
| UseSynchronizationContext | Bepaalt of de opgegeven synchronisatiecontext moet worden gebruikt, indien ingesteld. Gebruik deze optie om te bepalen of u een WindowsFormsSynchronizationContext wilt gebruiken in Windows Forms-toepassingen. |
| IncludeExceptionDetailInFaults | Bepaalt of algemene uitzonderingen voor niet-verwerkte uitvoering moeten worden geconverteerd naar een Fault<string> en verzonden als een foutbericht. |
| TransactionIsolationLevel | Hiermee geeft u het isolatieniveau voor transacties op. |
| ValidateMustUnderstand | Bepaalt of onverwachte berichtkoppen een foutsituatie veroorzaken. |
Bewerkingsgedrag wordt opgegeven met behulp van het OperationBehaviorAttribute kenmerk. In de volgende tabel worden enkele van deze gedragingen beschreven.
| Bedrijfsvoeringgedrag | Beschrijving |
|---|---|
| TransactionAutoComplete | Bepaalt of de voltooiing van de servicebewerking de huidige transactie doorvoert. |
| TransactionScopeRequired | Bepaalt of de servicebewerking wordt opgenomen in een door de client doorgegeven transactie. |
| Impersonation | Bepaalt of de servicebewerking de identiteit van de beller imiteert. |
| ReleaseInstanceMode | Bepaalt of service-exemplaren worden gerecycled aan het begin of einde van de servicebewerkingsoproep. |
Wanneer u het voorbeeld uitvoert, worden de bewerkingsaanvragen en -antwoorden weergegeven in het clientconsolevenster. De vertraging tussen de aanroepen is het resultaat van de aanroepen die in de servicebewerkingen uitgevoerd worden System.Threading.Thread.Sleep(). In de rest van de gedragsvoorbeelden worden deze gedragingen gedetailleerder uitgelegd. Druk op Enter in het clientvenster om de client af te sluiten.
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.
Het voorbeeld instellen, compileren en uitvoeren
Zorg ervoor dat u de One-Time Setup Procedure voor de Windows Communication Foundation-voorbeelden hebt uitgevoerd.
Als u de C# of Visual Basic .NET-editie van de oplossing wilt bouwen, volgt u de instructies in Het bouwen van de Windows Communication Foundation-voorbeelden.
Als u het voorbeeld wilt uitvoeren in een configuratie met één of meerdere computers, volgt u de instructies in Windows Communication Foundation-voorbeelden uitvoeren.