Bagikan melalui


OperationContractAttribute.IsTerminating Properti

Definisi

Mendapatkan atau menetapkan nilai yang menunjukkan apakah operasi layanan menyebabkan server menutup sesi setelah pesan balasan, jika ada, nilai dikirim.

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

Nilai Properti

true jika operasi menyebabkan server menutup sesi, jika tidak, false. Default adalah false.

Contoh

Contoh berikut adalah layanan yang menerapkan kontrak layanan yang menentukan tiga operasi. Layanan ini memerlukan koneksi stateful. Jika panggilan pertama penelepon adalah ke operasi apa pun selain MethodOne, saluran ditolak dan pengecualian dilemparkan. Ketika penelepon memulai sesi dengan memanggil MethodOne, penelepon tersebut dapat menghentikan sesi komunikasi kapan saja dengan memanggil MethodThree. MethodTwo dapat dipanggil beberapa kali selama sesi.

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

Keterangan

IsTerminating Gunakan properti untuk menunjukkan bahwa memanggil operasi layanan mengakhiri sesi komunikasi.

Dalam aplikasi klien, nilai IsTerminating yang ditetapkan untuk true menginstruksikan WCF untuk menutup saluran setelah balasan tiba.

Dalam layanan, timer diatur dan saluran dibatalkan jika klien tidak menutup saluran dalam periode tersebut.

Untuk informasi selengkapnya tentang menggunakan properti ini dengan sesi, lihat Menggunakan Sesi.

Catatan

Jika penelepon mendengarkan OperationContext.OperationCompleted peristiwa untuk OperationContractAttribute.IsTerminating operasi, dimungkinkan untuk memblokir ketika respons diterima. Cara yang tepat untuk menangani ini adalah dengan menjadwalkan pekerjaan pada utas lain ketika OperationCompleted dinaikkan dan kemudian segera kembali dari penanganan aktivitas tersebut.

Berlaku untuk