Ich möchte einen Windows-Dienst über eine Windows-Eingabeaufforderung installieren (nicht über die Visual Studio-Eingabeaufforderung).
Wie mache ich das?
Ich möchte einen Windows-Dienst über eine Windows-Eingabeaufforderung installieren (nicht über die Visual Studio-Eingabeaufforderung).
Wie mache ich das?
Antworten:
Navigieren Sie zu der Datei installutil.exe in Ihrem .net-Ordner (für .net 4 ist dies beispielsweise C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319) und installieren Sie Ihren Dienst wie folgt:
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe"
Mit dem Befehl SC Create ist nichts falsch. Sie müssen nur die richtigen Argumente kennen:
SC CREATE "MySVC" binpath= "D:\Me\Services\MySVC\MySVC.exe"
sc
Befehl, aber es ist etwas anderes, kann nicht zum Registrieren von Diensten verwendet werden.
Wenn der Name des Verzeichnisses ein Leerzeichen wie enthält c:\program files\abc 123
, müssen Sie den Pfad in doppelte Anführungszeichen setzen.
installutil.exe "c:\program files\abc 123\myservice.exe"
Es macht die Sache viel einfacher, wenn Sie eine Fledermausdatei wie folgt einrichten:
Um beispielsweise einen Dienst zu installieren, erstellen Sie eine "myserviceinstaller.bat" und " Als Administrator ausführen ".
@echo off
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
installutil.exe "C:\Services\myservice.exe"
if ERRORLEVEL 1 goto error
exit
:error
echo There was a problem
pause
um den Dienst zu deinstallieren,
Fügen Sie einfach ein -u zum Befehl installutil hinzu.
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "C:\Services\myservice.exe"
Führen Sie folgende Schritte aus:
c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
Es ist wichtig, mit Administratorrechten zu öffnen, da sonst möglicherweise Fehler auftreten, die keinen Sinn ergeben. Wenn Sie welche erhalten, überprüfen Sie, ob Sie sie zuerst mit Administratorrechten geöffnet haben!
Um mit Administratorrechten zu öffnen , klicken Sie mit der rechten Maustaste auf "Eingabeaufforderung" und wählen Sie "Als Administrator ausführen".
Installationsservice: -
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe"
"C:\Services\myservice.exe"
Sevice deinstallieren: -
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" -u "C:\Services\myservice.Service.exe"
Ich muss noch einen Punkt in diesen Thread einfügen. Um die 64-bit
Version von Assemblys zu installieren / deinstallieren, sollte die 64-bit
Version des Tools verwendet werden. Um einen Dienst zu installieren, sollte der Befehl lauten:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe"
"C:\YourFolder\YourService.exe"
und um den Befehl zu deinstallieren, sollte sein:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" -u
"C:\YourFolder\YourService.exe"
Erstellen Sie eine *.bat
Datei neben Ihrer Windows - Service - exe
Datei für die Installation mit folgendem Zusammenhang:
CLS
ECHO Installing My Windows Service
START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe "%~d0%~p0\YourWindowsServiceExeName.exe"
Erstellen Sie eine *.bat
Datei neben Ihrer Windows - Service - exe
Datei für die Deinstallation mit folgendem Zusammenhang:
CLS
ECHO Uninstalling My Windows Service
START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "%~d0%~p0\YourWindowsServiceExeName.exe"
Führen Sie jede bat
Datei als Administrator aus , um Ihren Windows-Dienst zu installieren oder zu deinstallieren.
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\
um zum Ordner zu gelangeninstallutil C:\ProjectFolder\bin\Debug\MyProject.exe
Hinweis: So deinstallieren Sie:installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe
Öffnen Sie Visual Studio und wählen Sie ein neues Projekt aus, indem Sie die Windows Service
Vorlage auf der Windows Desktop
Registerkarte auswählen . Dann kopieren Sie den folgenden Code in Ihre Datei service_name.cs.
using System.Diagnostics;
using System.ServiceProcess;
namespace TimerService
{
public partial class Timer_Service : ServiceBase
{
public Timer_Service()
{
InitializeComponent();
}
static void Main()
{
if (System.Diagnostics.Debugger.IsAttached)
{
Timer_Service service = new Timer_Service();
service.OnStart(null);
}
else
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Timer_Service()
};
ServiceBase.Run(ServicesToRun);
}
}
protected override void OnStart(string[] args)
{
EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service start successfully." });
}
protected override void OnStop()
{
EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service stop successfully." });
}
}
}
Klicken Sie mit der rechten Maustaste auf die Datei service_name.cs und öffnen Sie den Designer des Dienstes. als Rechtsklick und auswählen Add Installer
. Klicken Sie dann mit der rechten Maustaste auf serviceProcessInstaller1
und ändern Sie den Eigenschaftswert von Account
von User
nach Local System
.
static void main
Methode aus Program.cs
Datei entfernen . Dann speichern und erstellen Sie Ihr Projekt.
HINWEIS: Gehen Sie zum bin\Ddebug
Ordner Ihres Projektordners. Dann öffnen Sie die Eigenschaften Ihrer service_name.exe
Datei. Dann gehe zur Compatibility
Registerkarte. Dann klicken Sie auf Change Settings For All Users
.
Option auswählen Run this program as an administrator
.
Jetzt müssen Sie CommandPromt als Administrator öffnen. Legen Sie nach dem Öffnen das Verzeichnis fest, in dem sich Ihre InstallUtil.exe
Datei befindet. zum Beispiel : C:\Windows\Microsoft.NET\Framework64\v4.0.30319
. Schreiben Sie nun den folgenden Befehl:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe -i C:\TimerService\TimerService\bin\Debug\TimerService.exe
Hinweis: -i dient zur Installation des Dienstes und -u zur Deinstallation.
Nach -i legen Sie den Schreibpfad fest, in dem Sie Ihren Dienst installieren möchten.
Schreiben Sie nun den Befehl in CommandPromt wie folgt:
C:\TimerService\TimerService\bin\Debug>net start service_name
Hinweis: Verwenden Sie diese stop
Option, um den Dienst zu beenden.
Jetzt öffne ViewEventLog.exe
. Wählen Sie Windows-Protokolle> Anwendung. Dort können Sie das Protokoll Ihres Dienstes überprüfen, indem Sie den Dienst starten und stoppen.
Wenn Sie Powershell verwenden und den .NET-Dienst installieren möchten, können Sie das Install-Service- Modul verwenden. Es ist ein Wrapper für das InstalUtil-Tool.
Es werden 3 Befehle angezeigt
Der Code zu diesem Modul kann hier eingesehen werden
den folgenden Code, installieren und deinstallieren Sie den Dienst,
Öffnen Sie die Eingabeaufforderung, führen Sie das Programm als Administrator aus, lösen Sie den folgenden Befehl aus und drücken Sie die Eingabetaste.
Syntax
Installieren
C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe + Your copied path + \your service name + .exe
Beispiel: Unser Pfad InstallUtil.exe C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe
Zum Deinstallieren
C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe -u + Your copied path + \your service name + .exe
Beispiel: Unser Pfad InstallUtil.exe -u C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe
Weitere Hilfe finden Sie unter folgendem Link: Beispielprogramm
Befolgen Sie die Schritte zum Bereitstellen des Windows-Dienstes. Verlieren Sie keine Zeit
1- Führen Sie die Eingabeaufforderung mit dem Administratorrecht aus
2- Informieren Sie sich beim Kompilieren in Ihrer IDE über den Freigabemodus
3- Geben Sie Ihrem Projektinstallationsprogramm in der Entwurfsansicht einen Typ
4- Wählen Sie den Authentifizierungstyp entsprechend dem Fall aus
5- Versichern Sie sich über Software-Abhängigkeiten: Wenn Sie ein Zertifikat verwenden, installieren Sie es korrekt
6- Gehen Sie auf Ihre Konsole und schreiben Sie Folgendes:
C:\Windows\Microsoft.NET\Framework\yourRecentVersion\installutil.exe c:\yourservice.exe
Vor dem exe-Pfad, den -i c:\
Sie -u
zur Deinstallation verwenden können, befindet sich ein verstecktes -i-Argument
7- Sehen Sie sich Ihren EXE-Pfad als Protokolldatei an. Sie können die Ereignisanzeige verwenden, um die Funktion zu beobachten
Öffnen Sie die Entwickler-Eingabeaufforderung als Administrator und navigieren Sie zu
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
Verwenden Sie jetzt den Pfad, wo Sie sich .exe
befinden
InstallUtil "D:\backup\WindowsService\WindowsService1\WindowsService1\obj\Debug\TestService.exe"
Wenn Ihre Assembly-Version und Ihre Visual Studio-Projekt-Biuld-Einstellung auf Dot Net 2 oder 4 mit derselben Version installiert werden.
Installieren Sie den Dienst mit installutil
derselben Version
wenn im Punktnetz eingebaut 4
Art c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe
wenn im Punktnetz eingebaut 2
Art c:\windows\microsoft.net\framework\v2.0.11319\installutil.exe
1.Wählen Sie im Startmenü das Visual Studio-Verzeichnis und anschließend Developer Command Prompt for VS.
2.Die Eingabeaufforderung für Entwickler für Visual Studio wird angezeigt.
3.Greifen Sie auf das Verzeichnis zu, in dem sich die kompilierte ausführbare Datei Ihres Projekts befindet.
4. Führen Sie InstallUtil.exe an der Eingabeaufforderung mit der ausführbaren Datei Ihres Projekts als Parameter aus
Sie sollten die Eingabeaufforderung öffnen und zu gehen
C:\windows\microsoft.net\framework\v4.0.30319\InstallUtil.exe -i ".EXE file of window service"
Öffnen Sie die Eingabeaufforderung als Administrator und wechseln Sie zu Ihrem Ordner, in dem Sie .exe
sich befinden. Exe
Als Dienst installieren
D:\YourFolderName\YourExeName /i
Zum Deinstallieren verwenden /u
.