Ich habe eine Batch-Datei, die ich verwendet habe, um meine C # Windows Services für eine Weile zu installieren, noch nie ein Problem bis Windows 7. Ich habe versucht, die Batch-Datei mit Administratorrechten auszuführen. Ich habe versucht, die Eingabeaufforderung mit admin privs auszuführen, zu Windows EXE zu navigieren und InstallUtil dort auszuführen. Funktioniert immer noch nicht.
Nachdem ich einige andere Vorschläge gelesen hatte, habe ich versucht, meine Dateien aus dem Ordner / bin zu verschieben und sie von einem anderen Ort aus auszuführen, aber das hat auch nicht funktioniert.
Die Batch-Datei sieht so aus
%Vor%und ich habe eine Installationsprotokolldatei, an die ich Informationen dumps. Wenn ich einfach auf die .bat-Datei doppelklicke, bekomme ich
Ausführen einer Transaktionsinstallation.
Beginn der Installationsphase von Installation. Siehe den Inhalt der Protokolldatei für die C: \ Benutzer \ Justin \ Desktop \ Dienst test \ IEPPAMS_WinService1.exe Fortschritt der Montage. Die Datei ist befindet sich C: \ Benutzer \ Justin \ Desktop \ Dienst test \ IEPPAMS_WinService1.InstallLog.
Während der Installationsphase System.InvalidOperationException: Service Control Manager kann nicht geöffnet werden Computer '.'. Diese Operation könnte benötigen andere Privilegien. Das Innere Ausnahme System.ComponentModel.Win32Exception wurde mit dem folgenden Fehler ausgelöst Nachricht: Zugriff verweigert.
Die Rollback-Phase der Installation fängt an. Siehe den Inhalt der Protokolldatei für die C: \ Benutzer \ Justin \ Desktop \ Dienst test \ IEPPAMS_WinService1.exe Fortschritt der Montage. Die Datei ist befindet sich C: \ Benutzer \ Justin \ Desktop \ Dienst test \ IEPPAMS_WinService1.InstallLog.
Die Rollback-Phase ist abgeschlossen erfolgreich.
Die abgeschlossene Installation wurde abgeschlossen.
Wenn ich die .bat-Datei mit Administratorrechten ausführe, wird nichts in die Protokolldatei geschrieben, und der Dienst ist immer noch nicht installiert.
Irgendwelche Gedanken? Gibt es eine neue Möglichkeit, Dienste in Windows 7 zu installieren?
So konnte ich das Problem beheben, indem ich in der Befehlszeile den gesamten Pfad zu InstallUtil eingab und es funktionierte. Also nach dem Navigieren zu dem Ordner, der meine EXE hatte, tippte ich Folgendes:
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.21006 \ installutil.exe IEPPAMS_WinService1.exe
Nicht sicher, warum ich das in Windows 7 jetzt machen muss, als ich noch nie in XP hatte, aber naja. Danke für alle Vorschläge!
Klicken Sie mit der rechten Maustaste auf die Batchdatei und führen Sie sie als Administrator aus.
Sie werden sehr wahrscheinlich mit dem neuen Sicherheitsmodell (Benutzerkontensteuerung) von Windows Vista und Windows 7 in den Kampf ziehen. Selbst wenn Sie als ein Konto mit Administratorrechten ausgeführt werden, müssen Sie dennoch etwas erhöhen (die meisten ) administrative Tätigkeiten. (Ja, es ist möglich, diese Funktion zu deaktivieren, aber nicht)
Bearbeiten ... Die richtige Befehlszeile lautet InstallUtil YourApp.exe
. Das /i
scheint kein gültiger Schalter für InstallUtil
zu sein.
Wenn ich die .bat-Datei mit Administratorrechten ausführe, wird nichts in die Protokolldatei geschrieben, und der Dienst ist immer noch nicht installiert.
Zunächst müssen Sie als Admin-Berechtigungen ausführen.
Zweitens, wenn Sie "Als Administrator ausführen", ändert es tatsächlich das Verzeichnis in c: \ windows \ system32 als das ursprüngliche Verzeichnis (keine Ahnung warum), was wahrscheinlich erklären würde, warum das Ausführen als Administrator keine Protokolldatei verursacht. Ändern Sie manuell den Pfad zu IEPPAMS_WinService1.exe, in dem sich der Start Ihres Skripts befindet.
Tags und Links .net c# windows-services windows-7