2010-11-22 2 views
25

Ich entwickle derzeit einen Windows-Dienst in .NET 4.0, Visual Studio 2010, Windows 7-32bit. Ich habe ein Installationsprogramm, das die Installation für mich erledigt. Wenn ich den Dienst installieren, deinstallieren Sie es, und versuchen Sie es erneut zu installieren, erhalte ich folgende Fehlermeldung:Installieren/Deinstallieren von Diensten in Windows 7: "Fehler 1001. Der angegebene Dienst wurde zum Löschen markiert"

Error 1001. The specified service has been marked for deletion

In Windows XP war das Problem, dass die Services.msc offen war. Das Schließen dieses Fensters würde dieses Problem beheben.

Mit Windows 7 kann ich das jedoch nur durch einen Neustart beheben. Ich habe versucht, alle meine Programme zu schließen, aber das Problem besteht immer noch.

Kann jemand das ohne Neustart beheben?

bearbeiten

ich dieses Problem nicht gesehen habe, seit ich mit dem MSI-Installationsprogramm beendet, verwende ich sc.exe stattdessen die Dienste manuell zu installieren. Ich denke, dieses Problem könnte mit der Kombination von Visual Studio 2010 und MSI Installer Projects zusammenhängen. Ich weiß jedoch immer noch nicht, was der Schuldige an diesem Problem war. Es stellt sich heraus, dass Process Explorer der Schuldige war.

+2

Verwenden Sie Taskmgr.exe, Registerkarte Prozesse, und starten Sie die Prozesse nacheinander, bis Sie den gefunden haben, der die Registrierungsschlüssel noch geöffnet hat. –

+0

Ich habe aufgehört, MSI zu verwenden, um den Dienst zu installieren, sondern manuell mit s.exe zu installieren. Seitdem habe ich dieses Problem nicht erkannt. Es scheint, dass dieses Problem mit MSI-Projekten und möglicherweise Visual Studio zusammenhängen könnte. – Mas

+0

Yep sein Service Explorer (services.msc), die vermasselt. – TheVillageIdiot

Antwort

24

Kurzantwort

  • Schließen Services.msc
  • Schließen Process Explorer

Lange Antwort

Nach wieder in dieses Problem laufen, ich Task-Manager ging und begann Prozesse herunterzufahren. Ich fand schließlich den Übeltäter, es war eine interne Unternehmensanwendung, die für die Verwaltung der Softwareverteilung verwendet wurde. Ich habe es geschlossen, und die Dienste waren endlich weg.

aktualisieren

Ich fand auch, dass manchmal Prozess Explorer für gelöschte Dienste werden muss geschlossen verschwinden.

+1

Großartig, aber das bedeutet nicht, dass es auf einem anderen Zielgerät nicht schießen wird ... Ich würde Ihnen wärmstens empfehlen, Christopher's Vorschlag in Betracht zu ziehen. –

+0

Ich verwende das MSI-Installationsprogramm nicht mehr. Ich mache jetzt Installation von Diensten mit sc.exe im Skript. – Mas

+5

Process Explorer war der Schuldige in meinem Fall. – SWB

6

Haben Sie überlegt, ein anderes MSI-Authoring-Tool wie Windows Installer XML zu verwenden? Der Vorteil ist, dass Windows Installer nicht mit den darunter liegenden ServiceInstall/ServiceControl-Panels überdeckt wird. Dadurch ersparen Sie sich die mühsame Neuerfindung des Wheels mit zerbrechlichem Out-of-Process-InstallUtil-Code.

+0

Danke für diesen guten Tipp. Momentan sind meine Bedürfnisse sehr einfach, so dass es mir gut geht, das Installer-Projekt zu verwenden, das mit VS geliefert wird. Ich bin nur mit diesem lästigen Problem festgefahren. Momentan arbeite ich an diesem Problem, indem ich InstallUtil.exe manuell installiere und deinstalliere. – Mas

+0

Fühlen Sie sich frei, mich zu kontaktieren, wenn Sie von 1001 Fehlermeldungen satt werden (sogar während der automatischen Installation). Ich habe 14 Jahre Erfahrung im Schreiben von Installateuren, und ich kann mit Autorität sagen, dass InstallUtil schrecklich ist. Ein Postbuild-Skript zum Erstellen der ServiceInstall- und ServiceControl-Tabellen wäre eine viel bessere Lösung. –

+0

+1. Ich sollte sagen, dass ich selbst in dieses Loch gefallen bin. Wenn ich mich in meiner Installation auf InstallUtil verließ, waren 70% der gemeldeten Probleme mit seinen Fehlern verbunden. Und ich konnte nur wenige von ihnen reproduzieren und behandeln ... –

42

Ich hatte das gleiche Problem auf Windows 7 Ultimate Edition. Die Installation des Dienstes nach dem Schließen des Services.msc-Fensters hat mein Problem gelöst.

+1

Das ist richtig ... dieses Problem treibt mich wahnsinnig .. –

1

ich dieses Problem selbst gerade gelöst, in Windows 7.

FWIW, stellt sich heraus, Sie auf die Registerkarte "Dienste" gehen können, einen Rechtsklick auf den schuldigen Dienst, wählen Sie "Go To Process", und töten nach Bedarf.

0

Ich hatte das gleiche Problem mit meinem Windows-Dienst auf meinem Deployment Server.

Schritte Problem zu lösen:

  • Go/Deinstallations-Assistenten zu installieren, in den Fenstern
  • Klicken Sie auf Reparatur (die benutzerdefinierte Aktion der Einrichtung ausgelöst wird)
  • Nach der Reparatur versuchen, dass Windows-Dienst zu deinstallieren
  • wird es perfekt deinstallieren

Hoffe, das wird für Sie arbeiten.

Verwandte Themen