Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 36585|Antwort: 3

[ASP.NET] C# ist ein Windows-Service, der regelmäßig Aufgaben ausführt

[Link kopieren]
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
Veröffentlicht am 08.05.2019 10:59:16 |
Danke fürs Teilen, genau rechtzeitig, schick es mir
Veröffentlicht am 22.06.2020 14:04:33 |
Melde diesen Fehler immer
 Vermieter| Veröffentlicht am 07.09.2020 15:21:59 |

Der ausführende Befehl ist falsch, dieser Dienst ist nicht installiert. Wenn du es installierst, indem du auf die Kommandozeile tippst, kannst du meinen nächsten Beitrag lesen.
Die Verwendung von Topshelf für C# geplante Ausführungsaufgaben
https://www.itsvse.com/thread-7503-1-1.html

Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com