OperationContractAttribute.IsTerminating Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger ett värde som anger om tjänståtgärden gör att servern stänger sessionen efter att svarsmeddelandet har skickats.
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
Egenskapsvärde
trueom åtgärden gör att servern stänger sessionen, annars . false Standardvärdet är false.
Exempel
Följande exempel är en tjänst som implementerar ett tjänstkontrakt som anger tre åtgärder. Tjänsten kräver en tillståndskänslig anslutning. Om en anropares första anrop är till någon annan åtgärd än MethodOnenekas kanalen och ett undantag utlöses. När en anropare initierar en session genom att anropa MethodOnekan anroparen avsluta kommunikationssessionen när som helst genom att anropa MethodThree.
MethodTwo kan anropas valfritt antal gånger under en session.
[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;
}
}
Kommentarer
Använd egenskapen IsTerminating för att ange att samtal av en tjänståtgärd avslutar kommunikationssessionen.
I ett klientprogram IsTerminating instrueras WCF att true stänga kanalen när svaret har kommit.
I en tjänst anges en timer och kanalen avbryts om klienten inte stänger kanalen inom den perioden.
Mer information om hur du använder den här egenskapen med sessioner finns i Använda sessioner.
Note
Om en anropare lyssnar efter OperationContext.OperationCompleted händelsen för en OperationContractAttribute.IsTerminating åtgärd kan du blockera när svaret tas emot. Det rätta sättet att hantera detta är att schemalägga arbete på en annan tråd när OperationCompleted det har aktiverats och sedan omedelbart återgå från den händelsehanteraren.