Delen via


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

  1. Zorg ervoor dat u de eenmalige installatieprocedure 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 Het uitvoeren van de Windows Communication Foundation-voorbeelden.