Penyedia Debugging

Penyedia, kecuali mereka adalah penyedia yang dipisahkan berjalan dalam aplikasi, dimuat dalam proses Wmiprvse.exe, dan bukan melalui Svchost.exe dengan proses Winmgmt.exe. Untuk informasi selengkapnya, lihat Hosting dan Keamanan Penyedia.

Saat berhenti di titik henti, debugger Visual Studio membekukan seluruh proses host penyedia, yang biasanya merupakan host bersama Wmiprvse.exe. Ini mencegah pengoperasian komponen lain yang dihosting dalam proses tersebut, termasuk ekstensi WMI Server Explorer. Aplikasi klien yang memanggil ke penyedia juga diblokir. Masalah yang timbul lebih parah di Windows 2000 dan versi yang lebih lama, karena penyedia dimuat dalam proses layanan WMI (Winmgmt.exe).

Jika Anda menjalankan WMI Server Explorer pada instansi lain, maka Visual Studio IDE tidak membeku dan Anda dapat melepaskan titik henti. Kami menyarankan Anda menjalankan penyedia Anda dalam proses hosting terpisah selama fase pengembangan, sehingga berhenti pada titik jeda hanya akan menghentikan proses yang menghosting penyedia Anda. Fungsi lain di WMI terus dapat diakses oleh WMI Server Explorer dan aplikasi atau skrip berbasis WMI lainnya. Selain itu, jika penyedia Anda crash, itu tidak memengaruhi kinerja penyedia lain yang dimuat ke dalam proses host yang sama.

Untuk membuat penyedia Anda memuat dalam proses host-nya sendiri, ubah pendaftaran penyedia dengan mengatur properti __Win32Provider.HostingModel ke NetworkServiceHost:[MyProvider], di mana MyProvider dapat menjadi string apa pun yang secara unik mengidentifikasi penyedia Anda. Misalnya, gunakan nilai __Win32Provider.ClsId. Ketika penyedia Anda siap untuk mengirim, kembalikan __Win32Provider.HostingModel ke nilai yang dimaksudkan, seperti NetworkServiceHost.

Jika Anda tidak melakukan debugging pemuatan penyedia, Anda dapat memanggil metode Load dari kelas MSFT_Providers untuk memaksa penyedia Anda memuat, lalu melampirkan ke proses Wmiprvse.exe yang memuat DLL, dan men-debug sesuai kebutuhan.

Pemecahan Masalah WMI

Kelas Pemecahan Masalah WMI