OperationContractAttribute.IsTerminating Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.