Unload und QueryUnload werden nicht abgearbeitet

01/04/2015 - 14:49 von Klaus Ketelaer | Report spam
Hallo zusammen,

beim Hochfahren meiner Server (Windows 2003) wird vom Task-Planer eine
VB-Anwendung gestartet.

Die Anwendung arbeitet Folgendermaßen:

In der Sub Main wird die Form der Anwendung mittels Load geladen.

Im Form_Load wird eine UDP-Verbindung aufgebaut und ein Text aus
Message-ID,Servername und dem Wort "started" an den die IP-Adresse
meines PCs gesendet. Dann wird die UDP-Verbindung getrennt und es
wird ein Eintrag in ein Logfile geschrieben.

Mein Desktop empfàngt die Mittelung und schaltet eine "LED" neben
dem Namen des betroffenen Servers von Rot auf Grün.

Die Anwendung hàngt dann nutzlos im Speicher herum, bis der Server
heruntergefahren und die Anwendung dadurch beendet wird.

Nun soll die Anwendung im Form_Unload erneut eine UDP-Verbindung
aufbauen und eine àhnliche Message mit "stopped" als Ereignis senden.
Auch hier soll ein Eintrag in das Logfile geschrieben werden.


Aus irgend einem Grund wird in meiner Anwendung keines der vorgesehenen
Ergeignisse abgearbeitet. Weder in Unload, noch in QueryUnload wird der
Programmcode ausgeführt.

Ich habe auch versucht, die Form mit Show anzuzeigen, und dann einfach
auszublenden. Gleiches Resultat.

Die Anwendung ist auch direkt vor dem Shutdown im Taskmanager zu sehen.
Hàndisch gestartet und beendet funktioniert alles korrekt.

Per Autostart gestartet funktioniert auch alles bestens, was aber nichts
bringt, weil davon nur die Terminal-Session betroffen ist und nicht der
Server an sich.

In den Listen der Server-Ereignisse kann ich auch nichts Verdàchtiges
finden...

Was nun?

Gruß

Klaus
 

Lesen sie die antworten

#1 Christian Zimmermann
01/04/2015 - 15:38 | Warnen spam
Hallo Klaus,

es hat den Anschein, als würde deiner Anwendung keinerlei Zeit zum
ordnungsgemàßen Beenden mehr zugestanden. Làuft sie im Kontext einer
Benutzeranmeldung oder etwa als Dienst?

Evt. pollst du den Server von der Client-Anwendung aus in regelmàßigen
Abstànden und forderst dabei eine Anwort auf eine "still-alive?" Frage.
Aber das müßtest du ja eh implementiert haben, da der Server ja auch vor
dem "Desktop" (anderer Rechner?) gestartet worden sein kann, oder?

Andernfalls ist das Beenden der Tasks auf dem Server möglicherweise zu
strikt. Wie verhàlt sich deine Anwendung auf einem anderen Rechner?

Gruß,
Christian

Ähnliche fragen