Hosting di Aplikasi Layanan Windows
Layanan Windows (sebelumnya dikenal sebagai layanan Windows NT) menyediakan model proses yang sangat cocok untuk aplikasi yang harus hidup dalam eksekusi yang berjalan lama dan tidak menampilkan bentuk antarmuka pengguna apa pun. Masa pakai proses aplikasi layanan Windows dikelola oleh manajer kontrol layanan (SCM), yang memungkinkan Anda untuk memulai, menghentikan, dan menjeda aplikasi layanan Windows. Anda dapat mengonfigurasi proses layanan Windows untuk memulai secara otomatis saat komputer dinyalakan, menjadikannya lingkungan hosting yang sesuai untuk aplikasi "selalu aktif". Untuk informasi selengkapnya tentang aplikasi layanan Windows, lihat Aplikasi Layanan Windows.
Aplikasi yang menghosting layanan Windows Communication Foundation (WCF) yang berjalan lama memiliki banyak karakteristik yang sama dengan layanan Windows. Secara khusus, layanan WCF adalah server yang dapat dieksekusi yang berjalan lama yang tidak berinteraksi langsung dengan pengguna dan oleh karena itu tidak mengimplementasikan bentuk antarmuka pengguna apa pun. Dengan demikian, hosting layanan WCF di dalam aplikasi layanan Windows adalah salah satu opsi untuk membangun aplikasi WCF yang kuat dan berjalan lama.
Seringkali, pengembang WCF harus memutuskan apakah akan meng-host aplikasi WCF mereka di dalam aplikasi layanan Windows atau di dalam lingkungan hosting Layanan Informasi Internet (IIS) atau Layanan Aktivasi Proses Windows (WS). Anda harus mempertimbangkan untuk menggunakan aplikasi layanan Windows dalam kondisi berikut:
Aplikasi Anda memerlukan aktivasi eksplisit. Misalnya, Anda harus menggunakan layanan Windows saat aplikasi Anda harus dimulai secara otomatis saat server dimulai, bukan dimulai secara dinamis sebagai respons terhadap pesan masuk pertama.
Proses yang menghosting aplikasi Anda harus tetap berjalan setelah dimulai. Setelah dimulai, proses layanan Windows tetap berjalan kecuali secara eksplisit dimatikan oleh administrator server menggunakan manajer kontrol layanan. Aplikasi yang dihosting di IIS atau WS dapat dimulai dan dihentikan secara dinamis untuk memanfaatkan sumber daya sistem secara optimal. Aplikasi yang memerlukan kontrol eksplisit selama masa proses hosting mereka harus menggunakan layanan Windows, bukan IIS atau WS.
Layanan WCF Anda harus berjalan di Windows Server 2003 dan menggunakan transportasi selain HTTP. Pada Windows Server 2003, lingkungan hosting IIS 6.0 dibatasi untuk komunikasi HTTP saja. Aplikasi layanan Windows tidak tunduk pada pembatasan ini dan dapat menggunakan dukungan WCF transportasi apa pun, termasuk net.tcp, net.pipe, dan net.msmq.
Bagaimana
Membuat aplikasi layanan Windows. Anda dapat menulis aplikasi layanan Windows dalam kode terkelola menggunakan kelas di namespace System.ServiceProcess. Aplikasi ini harus menyertakan satu kelas yang mewarisi dari ServiceBase.
Tautkan masa pakai layanan WCF ke masa pakai aplikasi layanan Windows. Biasanya, Anda ingin layanan WCF yang dihosting di aplikasi layanan Windows menjadi aktif saat layanan hosting dimulai, berhenti mendengarkan pesan saat layanan hosting dihentikan, dan matikan proses hosting saat layanan WCF mengalami kesalahan. Ini dapat dicapai sebagai berikut:
Ganti OnStart(String[]) untuk membuka satu atau beberapa instans ServiceHost. Satu aplikasi layanan Windows dapat meng-host beberapa layanan WCF yang mulai dan berhenti sebagai grup.
Ganti OnStop untuk memanggil Closed pada ServiceHost semua layanan WCF yang berjalan yang dimulai selama OnStart(String[]).
Berlangganan ke peristiwa FaultedServiceHost dan gunakan kelas ServiceController untuk mematikan aplikasi layanan Windows jika terjadi kesalahan.
Aplikasi layanan Windows yang menghosting layanan WCF disebarkan dan dikelola dengan cara yang sama seperti aplikasi layanan Windows yang tidak menggunakan WCF.