2010-12-15 6 views
0

Ich installiere 32-Bit-Anwendung im Kompatibilitätsmodus auf Windows 2008 R2 Server, d. Die Installation und die Funktionalität funktionieren einwandfrei.Dllhost.exe * 32 kann 32-Bit-Ressourcen während der Deinstallation auf einer 64-Bit-Maschine nicht freigeben

Beim Versuch, die Anwendung zu deinstallieren, wird jedoch ein Fehler im Zusammenhang mit 'COM Surrogate' angezeigt. Dieser Fehler tritt zufällig auf.

Ein Meldungsfeld mit der Meldung "Schließen Sie die folgenden Anwendungen vor der Deinstallation" und die Meldung "COM Surrogate (Process ID)" wird angezeigt. Die angezeigte ProcessID ist der Prozess dllhost.exe * 32. Dies ist das spezielle dllhost.exe, das im 64-Bit-Betriebssystem gestartet wird, um die 32-Bit-Anwendungen im Kompatibilitätsmodus zu unterstützen. Die für die Anwendung erforderlichen 32-Bit-Binärdateien werden von dieser EXE gehostet. Die Laufzeit dieser EXE-Datei ist nur gültig, wenn eine der 32-Bit-Anwendungen auf einem 64-Bit-Computer ausgeführt wird.

Idealerweise sollte dllhost.exe * 32 bei der Deinstallation sauber und die Deinstallation glatt sein. Aber das passiert manchmal nicht.

Wenn ich irgendwann warten oder töten Sie die dllhost.exe * 32 manuell dann funktioniert die Deinstallation gut.

Was ich sehe, ist die genaue Ursache, warum die dllhost.exe * 32 nicht in der Lage ist, elegant und die Auflösung zu sterben.

Bitte, wenn uns jemand in dieser Hinsicht helfen könnte.

+0

Diese Frage ist offtopic, besser fragen auf http://superuser.com/ – BlackBear

Antwort

0

Meine Vermutung ist, dass die Deinstallationsprozedur nicht einmal die Beendigung des Prozesses fordert, weil es kein universelles Verfahren gibt, dies zu tun. Stattdessen erwartet es, dass die Anwendung beim Start der Deinstallation nicht ausgeführt wird.

Da anscheinend ein COM-Objekt bedient wird, sollten Sie herausfinden, welcher (andere) Anwendungsprozess das COM-Objekt verwendet, und diesen Prozess beenden. Als Brute-Force-Ansatz: Ersetzen Sie die COM-DLL durch eine geeignete Anwendung (COM-Server-Prozess), und ordnen Sie dieser Anwendung eine API zu, um sie zu beenden.

Verwandte Themen