Standaardservicegedrag
In het standaardvoorbeeld ziet u hoe instellingen voor servicegedrag kunnen worden geconfigureerd. Het voorbeeld is gebaseerd op aan de slag, waarmee het ICalculator
servicecontract 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).
Notitie
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 geeft u de instantiecontextmodus. |
UseSynchronizationContext | Bepaalt of de opgegeven synchronisatiecontext moet worden gebruikt, indien ingesteld. Gebruik deze optie als u wilt bepalen of u een WindowsFormsSynchronizationContext toepassing in Windows Forms-toepassingen wilt gebruiken. |
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 foutvoorwaarde veroorzaken. |
Bewerkingsgedrag wordt opgegeven met behulp van het OperationBehaviorAttribute kenmerk. In de volgende tabel worden enkele van deze gedragingen beschreven.
Werkingsgedrag | 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 gestroomde 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 moeten worden System.Threading.Thread.Sleep()
uitgevoerd. 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 eenmalige installatieprocedure 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 Het uitvoeren van de Windows Communication Foundation-voorbeelden.