Laden...

Forenbeiträge von Ralf2022 Ingesamt 12 Beiträge

28.03.2024 - 21:23 Uhr

Danke tom-essen. Das werde ich mal ausprobieren.

Danke gfoidl, ich werde mich mal in tasks und volatile einlesen.

Jetzt mach ich erstmal Osterferien:) Ich wünsche Euch schöne Feiertage und bis später.

19.03.2024 - 20:53 Uhr

Hallo liebes Forum,

ich verwende einen TCP/IP-Server der an sich gut funktioniert. Den kompletten Code habe ich angehangen.

Ich habe das Problem, dass ich die Anwendung nicht beenden kann. Scheinbar bleibe ich in der while-Schleife hängen, bis eine weitere Message empfangen wurde. Erst dann ist das Beenden möglich.

while (!_should_stop)
                {
                    TcpClient client = tcpListener.AcceptTcpClient();
                    Thread tcpHandlerThread = new Thread(new ParameterizedThreadStart(tcpHandler));
                    tcpHandlerThread.Start(client);
                }

Es funktioniert nicht, über folgendes das Beenden zu erzwingen.

public bool TCPServerStopp()
        {
            _should_stop = true;
            if (tcpListener != null)
            {
                tcpListener.Stop();//#1028
            }            
            if (tcpServerRunThread !=null)
            {
                tcpServerRunThread.Abort();
            }                       
            return true;
        }

Was mache ich falsch?

Vielen Dank für Eure Hilfe,

Gruß Ralf

18.04.2023 - 15:01 Uhr

So nochmal der Reihe nach:

-ich habe den Dienst deinstalliert

-in der Registry sind dann keine Einträge mehr vorhanden

-das Programmverzeichnis gelöscht

-Rechner neu gestartet

In der Ereignisanzeige laufen die Informationen munter weiter, aller 20 Sekunden. Allerdings als Version 1007, obwohl die letzte installierte die 1010 ist. Von der 1010 kommen auch im Betrieb keine Meldungen.

Der Dienst ist auf 5 Rechnern in der Produktion parallel installiert (alle haben des gleiche BS-Image). Überall das identische Verhalten.

Installiere ich den Dienst auf meinem Laptop gibt es diese Meldungen nicht. Auch beim Debuggen auf meinem Laptop kommen keinerlei Exceptions. Ich dreh durch ;o(

14.04.2023 - 13:31 Uhr

Es sind folgende Einträge in der Registry zu finden:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\EventLog\Application\Service99
1.jpg

Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Service99

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\Service99
2.jpg

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Service99
3.jpg

14.04.2023 - 12:06 Uhr

Und trotz Löschen kommt immer noch die selbe Fehlermeldung?

Ja

Und "1.0.0.7" ist die Versionsnummer (aber die sollte gar nicht mehr ermittelbar sein, wenn es die Datei nicht mehr gibt).

Eben

Der Dienst scheint ja zeitgesteuert alle 20s zu starten. Hast du mal in der "Aufgabenplanung" nachgeschaut?

Im Dienst ist kein Timer enthalten und in der Aufgabenplanung ist auch nichts eingetragen.

14.04.2023 - 11:46 Uhr

Habe den Dienst gestoppt und deinstalliert, den kompletten Ordner "C:\proj\Service99\" gelöscht.

Einträge in der Windows-Ereignisanzeige werden trotzdem weiter erzeugt. Immer noch mit Verweis auf die "C:\proj\Service99\Service99.exe".

Ist P2 die Version der exe? Dann wundert mich das, da die aktuelle Programmversion die 1.0.1.0 ist.

Problemsignatur:
P1: Service99.exe
P2: 1.0.0.7

Im Taskmanager finde ich keine weiteren Einträge. Wo kann Windows denn noch etwas versteckt haben?

13.04.2023 - 14:14 Uhr

Hallo,

danke für den Hinweis. Ich habe das Event abboniert, es wird aber nichts ins Logfile geschrieben, trotz dass im Eventmanager weiter Fehler einlaufen.

 static void Main()
        {
			AppDomain.CurrentDomain.UnhandledException += handleException;
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[]
            {
                new Service99()
            };
            ServiceBase.Run(ServicesToRun);
        }



static void handleException(object a_s, UnhandledExceptionEventArgs a_args)
        {
            var _e = (Exception)a_args.ExceptionObject;
            log.logthis("Exception.log", string.Format("e.Type: {0}; e.Message: {1}", _e.GetType().ToString(), _e.Message), 1);
        }
12.04.2023 - 21:36 Uhr

Hallo zusammen,

ich habe einen Windows-Dienst programmiert. Dieser macht was er soll.

Jetzt habe ich zufällig entdeckt, dass in der Windows-Ereignisanzeige alle ca. 20sec eine angebliche IOException dieses Dienstes als Information aufläuft. Der Dienst stürzt aber überhaupt nicht ab und läuft mittlerweile seit Monaten ununterbrochen.

Report aus Ereignisanzeige (Auszug):

EventType=CLR20r3
...
Sig[8].Value=System.IO.IOException
...
UI[8]=Service99 wurde beendet und geschlossen.

Diese Informationen laufen unaufhörlich weiter auf, auch bei beendetem Dienst und sogar nachdem ich den Dienst deinstalliert habe. Das verstehe ich überhaupt nicht. Dass der Service immer wieder beendet wurde kann ja nicht sein, denn es wurde kein automatischer Restart eingestellt. Kann mir da jemand helfen? Vielen Dank.

Viele Grüße Ralf

27.09.2022 - 08:54 Uhr

Hallo Abt,

danke für die Info. Da war ich also auf dem falschen Weg. Danke für den Hinweis, ich werde mal nachlesen, wie man TrayApps erstellt.

Gruß Ralf

26.09.2022 - 21:09 Uhr

Hallo liebes Forum,

ich habe einen Windows-Service programmiert, der überwacht, ob ein bestimmtes Programm läuft. Wenn nicht, wird dieses wieder gestartet (mittels Process.Start).
Funktioniert soweit. Jedoch wird das vom Dienst gestartete Programm nur im Hintergrund ausgeführt, das UI ist nicht sichtbar und auch in der Taskleiste nicht vorhanden. Im Taskmanager ist es aber als aktiv zu sehen, im Logfile ist auch zu erkennen, dass es arbeitet.
Ich habe den Dienst wahlweise als System, Lokal und User registriert, ohne Unterschied.
Wie kann man das denn ändern?

Vielen Dank und viele Grüße,
Ralf

20.04.2022 - 09:07 Uhr

Vielen Dank, funktioniert so. Gruß Ralf

19.04.2022 - 15:43 Uhr

Hallo,

ich verzweifel gerade daran, das Attribut "version" unter "props" auszulesen.
Mit
XmlDocument xDoc = new XmlDocument();
xDoc.Load(filename);
xDoc.DocumentElement.GetAttribute("version") kann ich nur auf die Attribute der ersten Zeile zugreifen. Wie komme ich an die unter "pops" ran?


<?xml version="1.0" encoding="utf-8"?>
<order command="download" version="1" destinationid="2" senderid="1" ts="637859731464969911" ">
  <props itemid="nomrec" itemsubid="1" version="45" Versiondate="2022-01-31T11:10:40" />
</order>

Verwendetes Datenbanksystem: <XML>`

Die xml-Struktur kommt von einer Maschine und ist nicht veränderbar.
Ich danke Euch vielmals.

Gruß Ralf