Die Installation von C# - Windows-Dienst unter Windows 7
Habe ich eine batch-Datei, habe ich für die Installation meines C# - Windows-Dienste für eine Weile jetzt, hatte nie ein problem, bis zu Windows 7. Ich habe versucht, führen Sie die batch-Datei mit Administrator-Privilegien. Ich habe versucht, führen Sie die Eingabeaufforderung mit admin privs, navigieren Sie zur windows-EXE-Datei und führen InstallUtil es. Funktioniert immer noch nicht.
Nach der Lektüre einige andere Vorschläge, die ich versuchte bewegte meine Dateien aus dem /bin Ordner und die Ausführung von einem anderen Ort, aber auch dass hat nicht funktioniert.
Die batch-Datei sieht wie folgt aus
@ECHO OFF
REM The following directory is for .NET 2.0
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v2.0.50727
set PATH=%PATH%;%DOTNETFX2%
echo Installing IEPPAMS Win Service...
echo ---------------------------------------------------
InstallUtil /i IEPPAMS_WinService1.exe
echo ---------------------------------------------------
echo Done.
und ich habe eine Installation der Protokoll-Datei, die ich dump-info zu. Wenn ich einfach nur Doppelklick auf die .bat-Datei bekomme ich
Läuft eine transaktive installation.
Beginn der Installationsphase der
- installation. Die Inhalte der
log-Datei für die
C:\Users\Justin\Desktop\service
test\IEPPAMS_WinService1.exe
die Montage ist Fortschritt. Die Datei ist
sich an
C:\Users\Justin\Desktop\service
test\IEPPAMS_WinService1.InstallLog.Eine Ausnahme ist aufgetreten, während die
Installation-phase.
System.InvalidOperationException:
Kann nicht öffnen Sie Dienststeuerungs-Manager auf
computer '.'. Dieser Vorgang könnte
andere Privilegien. Die innere
Ausnahme
System.ComponentModel.Win32Exception
geworfen wurde mit den folgenden Fehler
Meldung: Zugriff verweigert.Die Rollback-phase der installation
ist der Anfang. Die Inhalte der
log-Datei für die
C:\Users\Justin\Desktop\service
test\IEPPAMS_WinService1.exe
die Montage ist Fortschritt. Die Datei ist
sich an
C:\Users\Justin\Desktop\service
test\IEPPAMS_WinService1.InstallLog.Die Rollback-phase abgeschlossen
erfolgreich.Die transaktive Installation ist abgeschlossen.
Wenn ich das .bat Datei mit admin-rechten nichts wird in die Protokolldatei geschrieben werden, und der Dienst ist noch nicht installiert.
Irgendwelche Gedanken? Ist es ein neuer Weg, um installieren Sie Dienste in Windows 7?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Rechten Maustaste auf die batch-Datei und führen Sie es als Administrator.
Sind Sie wahrscheinlich laufen in den Kampf mit dem neuen Sicherheitsmodell (User Account Control) von Windows Vista und Windows 7. Auch wenn Sie ausgeführt werden, wie ein Konto mit Admin Rechte aus, die Sie noch brauchen, um zu erheben, um einige (die meisten) administrative Tätigkeiten. (Ja, es ist möglich, um diese Funktion zu deaktivieren, aber nicht)
UAC (MSDN)
UAC (Wikipedia)
InstallUtil (MSDN)
Bearbeiten... Die richtige commandline ist
InstallUtil YourApp.exe
. Die/i
sieht nicht ein gültig-Schalter fürInstallUtil
./i
?/i
vielleicht eine Verknüpfung zu/InstallStateDir
- und ist es wahrscheinlich immer verwirrt, auf der Suche nach einem Verzeichnis namensIEPPAMS_WinService1.exe
. In Zukunft gibt es eine/ShowCallStack
die vielleicht helfen herauszufinden, gibt es das problem wirklich Auftritt.So, ich war in der Lage, das problem zu beheben, indem Sie in der Befehlszeile den vollständigen Pfad zu InstallUtil und es funktionierte. So navigieren Sie zu dem Ordner, der hatte meine EXE tippte ich die folgenden:
Nicht sicher, warum ich zu tun, dass in Windows 7 als nun musste ich nie in XP, aber naja. Vielen Dank für alle Vorschläge!
C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe E:\DataService\DataSrvice.exe
Es funktioniert gut., Wenn ich das ausführen .bat Datei mit admin-rechten nichts wird in die Protokolldatei geschrieben werden, und der Dienst ist noch nicht installiert.
First off, Sie MÜSSEN als admin ausführen Berechtigungen.
Zweitens, wenn Sie "als Administrator Ausführen", es tatsächlich ändert das Verzeichnis, in c:\windows\system32 als das erste Verzeichnis ( keine Ahnung warum ), das würde wohl erklären, warum als admin ausgeführt verursacht keine log-Datei. Ändern Sie manuell den Pfad IEPPAMS_WinService1.exe befindet sich in der Anfang von deinem Skript.