Delen via


Standaardservicegedrag

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

  1. Zorg ervoor dat u de One-Time Setup Procedure voor de Windows Communication Foundation-voorbeelden hebt uitgevoerd.

  2. 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.

  3. Als u het voorbeeld wilt uitvoeren in een configuratie met één of meerdere computers, volgt u de instructies in Windows Communication Foundation-voorbeelden uitvoeren.