OperationContractAttribute.IsTerminating Eigenschap

Definitie

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de servicebewerking ervoor zorgt dat de server de sessie sluit na het antwoordbericht, indien van toepassing, wordt verzonden.

public:
 property bool IsTerminating { bool get(); void set(bool value); };
public bool IsTerminating { get; set; }
member this.IsTerminating : bool with get, set
Public Property IsTerminating As Boolean

Waarde van eigenschap

trueals de bewerking ervoor zorgt dat de server de sessie sluit, anders. false De standaardwaarde is false.

Voorbeelden

Het volgende voorbeeld is een service waarmee een servicecontract wordt geïmplementeerd dat drie bewerkingen aangeeft. Voor de service is een stateful verbinding vereist. Als de eerste aanroep van een beller een andere bewerking is dan MethodOne, wordt het kanaal geweigerd en wordt er een uitzondering gegenereerd. Wanneer een beller een sessie start door te bellen MethodOne, kan die beller de communicatiesessie op elk gewenst moment beëindigen door te bellen MethodThree. MethodTwo kan een willekeurig aantal keren worden aangeroepen tijdens een sessie.

[ServiceContractAttribute(SessionMode=SessionMode.Required)]
public class InitializeAndTerminateService
{
  [OperationContract(
    IsOneWay=true,
    IsInitiating=true,
    IsTerminating=false
  )]
  public void MethodOne()
  {
    return;
  }

  [OperationContract(
    IsInitiating=false,
    IsTerminating=false
  )]
  public int MethodTwo(int x, out int y)
  {
    y = 34;
    return 0;
  }

  [OperationContract(
    IsOneWay=true,
    IsInitiating=false
    IsTerminating=true
  )]
  public void MethodThree()
  {
    return;
  }
}

Opmerkingen

Gebruik de IsTerminating eigenschap om aan te geven dat het aanroepen van een servicebewerking de communicatiesessie beëindigt.

In een clienttoepassing geeft een waarde van IsTerminating ingesteld om WCF te true instrueren het kanaal te sluiten nadat het antwoord is ontvangen.

In een service wordt een timer ingesteld en wordt het kanaal afgebroken als de client het kanaal binnen die periode niet sluit.

Zie Sessies gebruiken voor meer informatie over het gebruik van deze eigenschap met sessies.

Note

Als een beller luistert naar de OperationContext.OperationCompleted gebeurtenis voor een OperationContractAttribute.IsTerminating bewerking, is het mogelijk om te blokkeren wanneer het antwoord wordt ontvangen. De juiste manier om dit te doen, is door werk op een andere thread te plannen wanneer OperationCompleted deze wordt gegenereerd en vervolgens onmiddellijk terug te keren van die gebeurtenis-handler.

Van toepassing op