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.
Ada beberapa cara berbeda untuk men-debug aplikasi layanan. Untuk memilih metode yang benar, Anda harus terlebih dahulu membuat dua pilihan: waktu di mana debugger dilampirkan ke aplikasi layanan dan konfigurasi debugging apa yang akan digunakan.
Ada tiga tahap di mana debugger dapat dilampirkan ke aplikasi layanan:
Tahap awal dari proses pengaktifan layanan. Debugger secara otomatis diluncurkan ketika layanan dimulai. Pilih opsi ini jika Anda ingin men-debug kode inisialisasi layanan.
Pertama kali layanan mengalami pengecualian. Debugger secara otomatis diluncurkan ketika terjadi pengecualian atau crash atau jika aplikasi layanan memanggil fungsi
DebugBreak. Pilih opsi ini jika Anda ingin debugger muncul ketika masalah terjadi tetapi tidak sebelumnya. Setelah layanan berjalan normal. Anda dapat melampirkan debugger secara manual ke layanan yang sudah berjalan kapan saja. Pilih opsi ini jika Anda tidak ingin melakukan persiapan sebelumnya untuk debugging.
Ada tiga konfigurasi debugging yang dapat Anda pilih:
Debugging lokal. Debugger tunggal, berjalan di komputer yang sama dengan layanan.
Debugging jarak jauh. Server debugging yang berjalan di komputer yang sama dengan layanan, dikendalikan dari klien debugging yang berjalan di komputer kedua.
Debugging mode pengguna yang dikontrol kernel. Debugger mode pengguna yang berjalan di komputer yang sama dengan layanan, dikontrol dari debugger kernel pada komputer kedua.
Jika layanan Anda berjalan pada Windows Vista atau versi Windows yang lebih baru, ada satu batasan tentang bagaimana pilihan ini dapat digabungkan. Jika Anda ingin melakukan debugging dari awal dimulainya layanan, atau sejak pengecualian ditemui, Anda harus menggunakan penelusuran kesalahan jarak jauh atau debugging mode pengguna yang dikendalikan kernel.
Dengan kata lain, Anda tidak dapat menggunakan debug lokal kecuali Anda berencana untuk menempelkan debugger secara manual setelah layanan sudah berjalan. Pembatasan ini menghasilkan fakta bahwa dalam versi Windows ini, layanan berjalan di sesi 0, dan debugger apa pun yang secara otomatis diluncurkan dan dilampirkan ke layanan juga dalam sesi 0, dan tidak memiliki antarmuka pengguna di komputer tempat layanan berjalan.