|
|
Veröffentlicht am 27.04.2019 17:56:09
|
|
|
|

Vorwort
Im Anschluss an den vorherigen Artikel über den Windows Task Scheduler dokumentiert dieser Artikel die Erstellung von Windows-Diensten.
Umwelt & Werkzeuge
>Windows-10-System
>VS 2017
Text
1: Eine neue Lösung erstellen und einen Windows-Dienst erstellen. Der Name ist "WindowsServiceDemo.exe”
2: Doppelklick auf die Datei "Service1.cs", Rechtsklick auf den leeren Platz – > wähle "Installer hinzufügen" aus.
3: In den beiden generierten Komponenten klicken Sie auf die Komponente "serviceProcessInstaller1" und setzen Sie im Eigenschaftensformular den Kontotyp "Account" auf "LocalSystem".
4: In den beiden generierten Komponenten klicke im Eigenschaften-Formular auf die Komponente "serviceInstaller1", setze die entsprechenden Eigenschaften und speichere dann.
5: Rechtsklick auf "Service1.cs" – > wähle "Code anzeigen" aus.
6: In der entsprechenden Methode schreiben Sie die Verarbeitungslogik. OnStart()-Methode: bezeichnet die Methode, die eingeht, wenn der Windows-Dienst startet. OnStop(): Wie der Name schon sagt, ist dies der Weg, um einzusteigen, wenn der Dienst endet. Wir können einen Timer schreiben, damit das Programm die Logik beim normalen Geschlechtsverkehr verarbeiten kann.
7: Erstellen Sie zwei Notizblockdateien, benennen und ändern Sie die Suffixnamen "Install.bat" bzw. "Uninstall.bat". Hinweis: Der Suffixname ist .bat. Fügen Sie es ins Projekt ein. Und ändere das Attribut in "Kopieren nach lokal".
8: Die beiden Dateien, die wir gerade erstellt haben, dienen zur Installation des Dienstes und zur Deinstallation des Dienstes. Schreibe jetzt den Batch-Code in diese beiden Dateien und speichere es. Öffnen Sie die Datei "Install.bat" und schreiben Sie folgenden Code
Hinweis: "WindowsServiceDemo.exe" ist das gerade generierte exe-Programm. "AServiceTest" ist der "ServiceName", der in der Komponente "serviceInstaller1" gesetzt wird.
Öffnen Sie die Datei "Uninstall.bat" und schreiben Sie folgenden Code
9: F6 erzeugt es. Im Projektverzeichnis "bin\Debug". Rechtsklick auf "Install.bat" – > wähle "Ausführen als Administrator" aus.
Sobald die Serviceinstallation abgeschlossen ist. Wir sehen, dass die "Log.txt"-Datei alle 10 Sekunden eine Datenzeile schreibt.
Wir können die installierten Dienste sehen. Ausführen – > "services.msc" eingeben und eingeben.
Stoppen Sie den Service jetzt. Rechtsklick auf "Uninstall.bat" – > wähle "Als Administrator ausführen".
Nachdem der Dienst deinstalliert wurde. Wir sehen, dass die "Log.txt"-Datei ebenfalls eine Datenzeile enthält.
#Windows-Service-Debugging
Windows-Dienste können nicht direkt mit F5 gestartet werden, F10 ist debugget. Wie kann man also das Programm debuggen, falls eine Anomalie vorliegt? 1: Zuerst nutzt der Administrator, um die Datei "Install.bat" auszuführen, und lasst das Programm zuerst laufen.
2: Gehe zurück zu VS und wähle in der Menüleiste "Debug" aus – > wähle "An Prozess anhängen".
3: Im Pop-up-Formular aktivieren Sie "Alle Nutzerprozesse anzeigen", finden Sie die .exe von uns generierte Anwendung und klicken Sie auf "Anhängen".
4: Zerstöre den Punkt in der Methode, sodass bei einer bestimmten Zeit Debugging ausgelöst werden kann.
Epilog
Das Debugging von Windows-Diensten ist sehr problematisch, manchmal ist das Programm in einem Problem geschrieben und der Dienst kann nicht starten, was das Debuggen erschwert. Im Allgemeinen wird das Schreiben von Windows-Diensten von einer Konsolenanwendung begleitet. Debugge es in der Konsolenanwendung und verschiebe es dann zu Windows Services. Das nächste Thema beschreibt eine einfachere Methode, einen Windows-Dienst zu erstellen.
Hinweis: Die von den beiden Programmen gestarteten und deinstallierten Batchdateien müssen als Administratoren ausgeführt werden. Andernfalls ist es falsch.
|
Vorhergehend:Gemeinsame Algorithmen zum Teilen von Big Data (Anwendungen)Nächster:Die Verwendung von Topshelf für C# geplante Ausführungsaufgaben
|