Installieren von C # Windows Service unter Windows 7

7

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?

    
Justin C 31.08.2010, 18:54
quelle

3 Antworten

8

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!

    
Justin C 31.08.2010, 19:57
quelle
11

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.

    
Matthew Whited 31.08.2010 18:59
quelle
3

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.

    
Serapth 31.08.2010 19:53
quelle