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 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 MethodOne
bir işleme yönelikse, kanal reddedilir ve bir özel durum oluşturulur. Arayan çağırarak MethodOne
bir oturum başlattığında, çağıran herhangi bir zamanda çağrısı MethodThree
yaparak 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.