Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Nota
Artikel ini tidak berlaku untuk layanan yang dihosting di .NET. Untuk konten terbaru tentang layanan Windows menggunakan Microsoft.Extensions.Hosting.BackgroundService dan templat Layanan Pekerja, lihat:
Aplikasi Layanan Windows didasarkan pada kelas yang mewarisi dari kelas System.ServiceProcess.ServiceBase. Anda harus mengesampingkan metode dari kelas ini dan mendefinisikan fungsionalitasnya untuk menentukan bagaimana layanan Anda berperilaku.
Kelas utama yang terlibat dalam pembuatan layanan adalah:
System.ServiceProcess.ServiceBase — Anda mengambil alih metode dari ServiceBase kelas saat membuat layanan dan menentukan kode untuk menentukan bagaimana layanan Anda berfungsi di kelas yang diwariskan ini.
System.ServiceProcess.ServiceProcessInstaller dan System.ServiceProcess.ServiceInstaller —Anda menggunakan kelas-kelas ini untuk menginstal dan menghapus instalan layanan Anda.
Selain itu, kelas bernama ServiceController dapat digunakan untuk memanipulasi layanan itu sendiri. Kelas ini tidak terlibat dalam pembuatan layanan, tetapi dapat digunakan untuk memulai dan menghentikan layanan, meneruskan perintah ke layanan tersebut, dan mengembalikan serangkaian enumerasi.
Menentukan Perilaku Layanan Anda
Di kelas layanan, Anda mengambil alih fungsi kelas dasar yang menentukan apa yang terjadi ketika status layanan Anda diubah di Pengelola Kontrol Layanan. Kelas ServiceBase mengekspos metode berikut, yang dapat Anda ambil alih untuk menambahkan perilaku kustom.
| Metode | Mengesampingkan ke |
|---|---|
| OnStart | Tunjukkan tindakan apa yang harus diambil saat layanan Anda mulai berjalan. Anda harus menulis kode dalam prosedur ini agar layanan Anda dapat melakukan pekerjaan yang berguna. |
| OnPause | Tunjukkan apa yang harus terjadi saat layanan Anda dijeda. |
| OnStop | Tunjukkan apa yang harus terjadi ketika layanan Anda berhenti berjalan. |
| OnContinue | Tunjukkan apa yang harus terjadi saat layanan Anda melanjutkan fungsi normal setelah dijeda. |
| OnShutdown | Tunjukkan apa yang harus terjadi tepat sebelum sistem Anda dimatikan, jika layanan Anda berjalan pada saat itu. |
| OnCustomCommand | Tunjukkan apa yang harus terjadi saat layanan Anda menerima perintah kustom. Untuk informasi selengkapnya tentang perintah kustom, lihat MSDN online. |
| OnPowerEvent | Tunjukkan bagaimana layanan harus merespons ketika peristiwa manajemen daya diterima, seperti baterai rendah atau operasi yang ditangguhkan. |
Nota
Metode ini mewakili bahwa layanan bergerak dalam masa pakainya; layanan beralih dari satu status ke status berikutnya. Misalnya, Anda tidak akan pernah mendapatkan layanan untuk merespon perintah OnContinue sebelum OnStart telah dipanggil.
Ada beberapa properti dan metode lain yang menarik. Ini termasuk:
Metode Run pada kelas ServiceBase. Ini adalah titik masuk utama untuk layanan. Saat Anda membuat layanan menggunakan templat Layanan Windows, kode disisipkan dalam metode aplikasi
MainAnda untuk menjalankan layanan. Kode ini terlihat seperti ini:ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new Service1() }; Run(ServicesToRun);Dim ServicesToRun() As System.ServiceProcess.ServiceBase ServicesToRun = New System.ServiceProcess.ServiceBase() {New Service1()} System.ServiceProcess.ServiceBase.Run(ServicesToRun)Nota
Contoh-contoh ini menggunakan array jenis ServiceBase, di mana setiap layanan yang dikandung aplikasi Anda dapat ditambahkan, dan kemudian semua layanan dapat dijalankan bersama-sama. Namun, jika Anda hanya membuat satu layanan, Anda dapat memilih untuk tidak menggunakan array dan hanya mendeklarasikan objek baru yang mewarisi dari ServiceBase lalu menjalankannya. Misalnya, lihat Cara: Menulis Layanan Secara Terprogram.
Serangkaian properti pada kelas ServiceBase. Ini menentukan metode apa yang dapat dipanggil pada layanan Anda. Misalnya, saat properti CanStop diatur ke
true, metode OnStop pada layanan Anda dapat dipanggil. Ketika properti CanPauseAndContinue diatur ketrue, metode OnPause dan OnContinue dapat dipanggil. Ketika Anda mengatur salah satu properti ini ketrue, Anda kemudian harus mengganti dan mengatur pemrosesan untuk metode terkait.
Anda juga dapat menggunakan komponen yang ServiceController disebut untuk berkomunikasi dengan dan mengontrol perilaku layanan yang ada.