OperationContractAttribute.IsTerminating Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.