769 Stimmen

Wie löst man den Fehler "Der angegebene Dienst wurde zur Löschung markiert"?

Ich versuche, einen Windows-Dienst mit sc delete zu entfernen, und stelle den folgenden Fehler fest:

[SC] DeleteService FEHLGESCHLAGEN 1072:

Der angegebene Dienst wurde zum Löschen markiert.

Was ich bisher gemacht habe:

Das Problem besteht weiterhin.

Was ist der nächste Schritt?

2voto

Yaman Punkte 999

In meinem Fall war der Dienstname 'Monitor', der auch von einem Windows-Dienst namens 'Monitor' verwendet wird. Als ich versuchte, meine Dienste zu aktualisieren, versuchte ich, sie zu deinstallieren. Der Installer versuchte, den Windows-Dienst 'Monitor' zu entfernen, was ihm nicht gelang, und die Installation wurde immer rückgängig gemacht.

Letztendlich habe ich meinen Dienst umbenannt.

1voto

Gaurav Tyagi Punkte 958

Der Hauptgrund für den Fehler ist, dass der Prozess nicht gestoppt wird. Um das zu lösen, starten Sie den Task-Manager, gehen Sie zu Diensten und überprüfen Sie, ob Sie Ihren Dienst noch sehen können, dann gehen Sie zum Prozess dieses Dienstes und beenden Sie den Prozess. Dann wird das Problem vollständig gelöst sein.

0voto

vadzvnik Punkte 61

Ich hatte dieses Problem, als ich den Application Verifier verwendete, um meinen Windows-Dienst zu überprüfen. Selbst nachdem ich App Ver geschlossen hatte, wurde mein Dienst vom Löschen blockiert. Erst das Entfernen des Dienstes aus App Ver löste das Problem, und der Dienst wurde sofort gelöscht. Es scheint, als ob ein Prozess immer noch Ihren Dienst nutzt, nachdem Sie versucht haben, ihn zu löschen.

0voto

CuriousGuy Punkte 3230

Wenn die von @MainMa bereitgestellten Schritte nicht funktioniert haben, befolgen Sie die folgenden Schritte:

Schritt 1 Versuchen Sie, den Prozess vom Windows-Task-Manager aus zu beenden oder verwenden Sie taskkill /F /PID. Sie können die PID des Prozesses mit dem Befehl 'sc queryex' finden. Gehen Sie zum nächsten Schritt, wenn Sie immer noch nicht deinstallieren können.

Schritt 2 Wenn obiges nicht funktioniert

Führen Sie Autoruns für Windows aus. Suchen Sie nach Diensten nach Namen und löschen Sie die Ergebnisse.

0voto

e03050 Punkte 1172

Der Löschdienst scheitert wahrscheinlich, weil

protected override void OnStop()

einen Fehler wirft, wenn ein Dienst gestoppt wird. Das Einfassen von Dingen in eine Try-Catch-Struktur verhindert den Fehler "Mark for deletion".

protected override void OnStop()
{
            try
            {
                //Dinge zu erledigen
            }
            catch (Exception)
            {
            }

}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X