Aracılığıyla paylaş


OperationContractAttribute.IsTerminating Özellik

Tanım

Hizmet işleminin, varsa 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ğırarak MethodThreeiletiş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.

İstemci uygulamasında, yanıt geldikten sonra WCF'ye kanalı kapatmasını bildirmek için true ayarlanan değeri IsTerminating kullanılır.

Bir hizmette bir zamanlayıcı ayarlanır ve istemci bu süre içinde kanalı kapatmazsa kanal iptal edilir.

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

Uyarı

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

Şunlara uygulanır