Debuganbieter
Anbieter, es sei denn, sie sind entkoppelte Anbieter, die innerhalb einer Anwendung ausgeführt werden, werden in einen Wmiprvse.exe-Prozess geladen, nicht über Svchost.exe mit einem Winmgmt.exe Prozess. Weitere Informationen finden Sie unter Anbieterhosting und Sicherheit.
Beim Beenden an einem Haltepunkt friert der Visual Studio-Debugger den gesamten Anbieterhostprozess ein, bei dem es sich in der Regel um den freigegebenen Hostprozess Wmiprvse.exe. Dies verhindert den Betrieb anderer Komponenten, die in diesem Prozess gehostet werden, einschließlich der WMI-Server-Explorer Erweiterung. Clientanwendungen, die den Anbieter aufrufen, werden ebenfalls blockiert. Die Probleme, die im Jahr Windows 2000 und früher auftreten, sind schlechter, da der Anbieter in den WMI-Dienstprozess (Winmgmt.exe) geladen wird.
Wenn Sie WMI-Server-Explorer in einer anderen Instanz ausführen, Visual Studio die IDE nicht eingefroren, und Sie können den Haltepunkt wieder frei geben. Es wird empfohlen, dass Sie Ihren Anbieter während der Entwicklungsphase in einem separaten Hostingprozess ausführen, damit das Beenden an einem Haltepunkt nur den Prozess einfriert, der Ihren Anbieter hosten soll. Die anderen Funktionen in WMI sind weiterhin für WMI-Server-Explorer und alle anderen WMI-basierten Anwendungen oder Skripts zugänglich. Wenn Ihr Anbieter abstürzt, wirkt sich dies auch nicht auf den Betrieb anderer Anbieter aus, die in denselben Hostprozess geladen werden.
Damit Ihr Anbieter in einem eigenen Hostprozess geladen wird, ändern Sie die Anbieterregistrierung, um die _ _ Win32Provider.HostingModel-Eigenschaft auf zu setzen, wobei MyProvider eine beliebige Zeichenfolge sein kann, die Ihren Anbieter eindeutig NetworkServiceHost:[MyProvider] identifiziert. Verwenden Sie beispielsweise den _ _ Wert Win32Provider.ClsId. Wenn Ihr Anbieter bereit für den Versand ist, geben _ _ Sie Win32Provider.HostingModel auf den beabsichtigten Wert zurück, z. B. NetworkServiceHost.
Wenn Sie das Laden des Anbieters nicht debuggen, können Sie die Load-Methode der _ MSFT-Anbieterklasse aufrufen, um das Laden des Anbieters zu erzwingen, dann an den Wmiprvse.exe-Prozess anfügen, in dem die DLL geladen ist, und bei Bedarf debuggen.