Bagikan melalui


Pemecahan Masalah Layanan

Anda dapat menggunakan salah satu metode berikut untuk men-debug layanan Anda.

  • Gunakan debugger Anda untuk men-debug layanan saat sedang berjalan. Pertama, dapatkan pengidentifikasi proses (PID) dari proses layanan. Setelah Anda mendapatkan PID, lampirkan ke proses yang sedang berjalan. Untuk informasi sintaks, lihat dokumentasi yang disertakan dengan debugger Anda.

  • Panggil fungsi DebugBreak untuk mengaktifkan debugger untuk penelusuran kesalahan just-in-time.

  • Tentukan debugger yang akan digunakan saat memulai program. Untuk melakukannya, buat kunci baru yang disebut Opsi Eksekusi File Gambar di lokasi registri berikut:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

    Buat subkunci dengan nama yang sama dengan layanan Anda (misalnya, MYSERV.EXE). Ke subkunci ini, tambahkan nilai jenis REG_SZ, bernama Debugger. Gunakan jalur lengkap ke debugger sebagai nilai string. Di panel kontrol applet Layanan, pilih layanan Anda, klik Startup dan centang Izinkan Layanan berinteraksi dengan Desktop. Layanan harus berupa layanan interaktif, atau debugger tidak dapat berjalan pada desktop default. Perhatikan bahwa teknik ini tidak lagi didukung pada Windows Vista karena semua layanan dijalankan dalam sesi yang dicadangkan khusus untuk layanan dan tidak mendukung tampilan antarmuka pengguna.

  • Gunakan Pelacakan Peristiwa untuk mencatat informasi.

Untuk men-debug kode inisialisasi layanan auto-start, Anda harus menginstal dan menjalankan layanan untuk sementara sebagai layanan on-demand.

Terkadang, mungkin perlu menjalankan layanan sebagai aplikasi konsol untuk tujuan debugging. Dalam skenario ini, fungsi StartServiceCtrlDispatcher akan mengembalikan ERROR_FAILED_SERVICE_CONTROLLER_CONNECT. Oleh karena itu, pastikan untuk menyusun kode Anda sehingga kode khusus layanan tidak dipanggil ketika kesalahan ini dikembalikan.

Debugging Aplikasi Layanan

Alat Debugging untuk Windows