Felsökningsleverantörer
Leverantörer, såvida de inte är frikopplade leverantörer körs i ett program, laddas in i en Wmiprvse.exe-process och inte genom en Svchost.exe- eller Winmgmt.exe-process. Mer information finns i Provider Hosting and Security.
När du stoppar vid en brytpunkt pausar Visual Studio-felsökningsprogrammet hela värdprocessen för leverantör, som vanligtvis är den delade värden Wmiprvse.exe. Detta förhindrar att andra komponenter körs i den processen, inklusive WMI Server Explorer-tillägget. Klientprogram som anropar till providern blockeras också. De problem som uppstår är värre i Windows 2000 och tidigare eftersom leverantören läses in i WMI-tjänstprocessen (Winmgmt.exe).
Om du kör WMI Server Explorer i en annan instans låses inte Visual Studio IDE och du kan släppa brytpunkten. Det rekommenderas att du kör din leverantör i en separat värdprocess under utvecklingsfasen, så att när du stannar vid en brytpunkt fryser endast den process som är värd för din leverantör. De andra funktionerna i WMI fortsätter att vara tillgängliga för WMI Server Explorer och andra WMI-baserade program eller skript. Om providern kraschar påverkar det inte heller driften av andra leverantörer som läses in i samma värdprocess.
Om du vill att providern ska läsas in i sin egen värdprocess ändrar du providerregistreringen så att egenskapen __Win32Provider.HostingModel till NetworkServiceHost:[MyProvider]
där MyProvider kan vara valfri sträng som unikt identifierar din provider. Använd till exempel värdet __Win32Provider.ClsId. När leverantören är redo att skicka, återställ __Win32Provider.HostingModel till det avsedda värdet, exempelvis NetworkServiceHost.
Om du inte felsöker providerinläsning kan du anropa metoden Load för MSFT_Providers-klassen för att tvinga providern att läsa in och sedan ansluta till den Wmiprvse.exe process som har DLL-filen inläst och felsöka efter behov.
Relaterade ämnen