Entwickler-Ecke
Basistechnologien - Windows Dienst und noch eine letzte Ausführung
BlackMatrix - Fr 13.08.10 03:10
Titel: Windows Dienst und noch eine letzte Ausführung
Hi.
Mein ganzes Programm ist ein Windows Dienst, bisher hat damit auch alles funktioniert.
Mein Programm hat mit dem Windowsstart begonnen und hat sich erst wieder beendet, wenn ich den Computer ausgeschalten habe oder ich den Prozess gekillt habe.
Das wollte ich auch so. Nun möchte ich aber, dass mein Dienst, eine letzte Tätigkeit ausführt bevor er beendet wird oder Windows heruntergefahren wird.
Was kann ich tun?
MfG
thepioneer - So 15.08.10 13:31
Hi BlackMatrix
Dein Dinest sollte eigentlich die beiden Methoden beinhalten:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| protected override void OnStart(string[] args) { }
protected override void OnStop() { } |
In der OnStop Methode gibst du an was der Dienst noch zu erledigen hat bevor er sich beendet.
Die Methode OnStop wir dann aufgerufen sobald du dem Dienst den Befehl gibtst sich zu beenden.
Delete - So 15.08.10 13:39
Soe wird aber nicht aufgerufen, wenn der Dienst über den Taskmanager beendet wird.
thepioneer - So 15.08.10 15:37
| Zitat: |
Soe wird aber nicht aufgerufen, wenn der Dienst über den Taskmanager beendet wird.
|
Wenn über den Taskmanager unter "Dienste" der Dienst beendet wird, wird diese Methode aufgerufen.
Beendest du jedoch einfach den Prozess des Dienstes (Prozess beenden (killen)) dann ist es naheliegend, dass diese Methode nicht mehr aufgerufen werden kann.
Delete - So 15.08.10 18:21
Ich meinte logischerweise zweiteres.
thepioneer - So 15.08.10 18:28
@Luckie
ich gehe davon aus, dass BlackMatrix eine Möglichkeit sucht für reguläres Beenden. Wenn nicht wird er sich bestimmt noch zu Wort melden.
Das andere liegt ja klar auf der Hand dass das aus dem gleichen Dienst nicht geht.
@BlackMatrix:
Solltest du eine Möglichkeit suchen wenn dein Dienst gekillt wird, würde ich das ggf. mit einem separaten Dienst bewerkstelligen welcher prüft ob dein erster Dienst noch läuft. Sollte das nicht mehr der Fall sein, kann er ggf. diese letzte Aktion ausführen (in ein Logbuch schreiben oder so).
BlackMatrix - So 22.08.10 18:37
thepioneer hat folgendes geschrieben : |
@Luckie
@BlackMatrix:
Solltest du eine Möglichkeit suchen wenn dein Dienst gekillt wird, würde ich das ggf. mit einem separaten Dienst bewerkstelligen welcher prüft ob dein erster Dienst noch läuft. Sollte das nicht mehr der Fall sein, kann er ggf. diese letzte Aktion ausführen (in ein Logbuch schreiben oder so). |
Konnte mich leider jetzt erst melden.
Genauso wie du das geschrieben hast, wollte ich das haben und danke für den Code :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!