OperationContractAttribute.IsTerminating Özellik

Tanım

Hizmet işleminin yanıt iletisi gönderildikten sonra sunucunun oturumu kapatmasına neden olup olmadığını belirten bir değer alır veya ayarlar.

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

Özellik Değeri

true işlem sunucunun oturumu kapatmasına neden oluyorsa, aksi takdirde , false. Varsayılan değer: false.

Örnekler

Aşağıdaki örnek, üç işlemi belirten bir hizmet sözleşmesi uygulayan bir hizmettir. Hizmet durum bilgisi olan bir bağlantı gerektirir. Çağıranın ilk çağrısı dışında MethodOnebir işleme yönelikse, kanal reddedilir ve bir özel durum oluşturulur. Arayan çağırarak MethodOnebir oturum başlattığında, çağıran herhangi bir zamanda çağrısı MethodThreeyaparak iletişim oturumunu sonlandırabilir. MethodTwo bir oturum sırasında herhangi bir sayıda çağrılabilir.

[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;  
  }  
}  

Açıklamalar

Bir hizmet işlemini çağırmanın IsTerminating iletişim oturumunu sonlandırdığını belirtmek için özelliğini kullanın.

bir istemci uygulamasında, bir değeri IsTerminating olarak ayarlanmış değeri WCF'ye true yanıt geldikten sonra kanalı kapatmasını emreder.

Bir hizmette bir süreölçer ayarlanır ve istemci bu süre içinde kanalı kapatmazsa kanal durdurulr.

Bu özelliği oturumlarla kullanma hakkında daha fazla bilgi için bkz. Oturumları Kullanma.

Not

Çağıran bir OperationContractAttribute.IsTerminating işlem için olayı dinliyorsaOperationContext.OperationCompleted, yanıt alındığında engellemek mümkündür. Bunu işlemenin en uygun yolu, tetiklendiğinde OperationCompleted başka bir iş parçacığında çalışmayı zamanlamak ve ardından bu olay işleyicisinden hemen dönmektir.

Şunlara uygulanır