Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Standardexemplet visar hur inställningar för tjänstbeteende kan konfigureras. Exemplet baseras på Komma igång, som implementerar tjänstkontraktet ICalculator . Det här exemplet definierar uttryckligen tjänstbeteenden och åtgärdsbeteenden med hjälp av attributen ServiceBehaviorAttribute och OperationBehaviorAttribute . Du kan konfigurera beteenden i konfigurationsfiler eller imperativt i kod (som det här exemplet visar).
I det här exemplet är klienten ett konsolprogram (.exe) och tjänsten hanteras av Internet Information Services (IIS).
Anmärkning
Installationsproceduren och bygginstruktionerna för det här exemplet finns i slutet av det här avsnittet.
Tjänstklassen anger beteenden med ServiceBehaviorAttribute och OperationBehaviorAttribute som visas i följande kodexempel. Alla angivna värden är standardvärdena.
[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;
}
...
}
Tjänstbeteenden anges med attributet ServiceBehaviorAttribute . I följande tabell beskrivs några av dessa beteenden.
| Tjänstbeteende | Beskrivning |
|---|---|
| AutomaticSessionShutdown | Stänger automatiskt av en session på klientens begäran. |
| ConcurrencyMode | Anger samtidighetsläget för varje tjänstinstans. |
| InstanceContextMode | Anger instanskontextläget. |
| UseSynchronizationContext | Avgör om du vill använda den angivna synkroniseringskontexten, om en har angetts. Använd detta när du vill styra om du vill använda en WindowsFormsSynchronizationContext i Windows Forms-program. |
| IncludeExceptionDetailInFaults | Avgör om allmänna ohanterade körningsfel ska konverteras till ett Fault<string> och skickas som ett felmeddelande. |
| TransactionIsolationLevel | Anger isoleringsnivån för transaktioner. |
| ValidateMustUnderstand | Avgör om oväntade meddelandehuvuden orsakar ett feltillstånd. |
Åtgärdsbeteenden anges med hjälp av attributet OperationBehaviorAttribute . I följande tabell beskrivs några av dessa beteenden.
| Driftsbeteende | Beskrivning |
|---|---|
| TransactionAutoComplete | Avgör om slutförandet av tjänståtgärden genomför den aktuella transaktionen. |
| TransactionScopeRequired | Avgör om tjänstoperationen deltar i en klientdriven transaktion. |
| Impersonation | Avgör om tjänståtgärden imiterar anroparens identitet. |
| ReleaseInstanceMode | Avgör om tjänstinstanser återvinns i början eller slutet av tjänsteoperationens anrop. |
När du kör exemplet visas åtgärdsbegäranden och svar i klientkonsolfönstret. Fördröjningen mellan anropen beror på de samtal som görs av System.Threading.Thread.Sleep() i tjänståtgärderna. Resten av beteendeexemplen förklarar dessa beteenden mer detaljerat. Tryck på RETUR i klientfönstret för att stänga av klienten.
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.
Så här konfigurerar du, skapar och kör exemplet
Kontrollera att du har utfört One-Time installationsproceduren för Windows Communication Foundation-exempel.
Om du vill skapa C# eller Visual Basic .NET-versionen av lösningen följer du anvisningarna i Skapa Windows Communication Foundation-exempel.
Om du vill köra exemplet i en konfiguration med en eller flera datorer följer du anvisningarna i Köra Windows Communication Foundation-exempel.