Announcement

Collapse
No announcement yet.

Watchdog

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Watchdog

    Hallo an alle,
    ich habe ein paar Probleme mit meiner ersten echten App und hoffe Ihr könnt mit irgendwie helfen!

    Meine App ist ein TCP-Server, der einfach von externen PC Daten annimmt und dann an eine DB weitergibt. Das läuft auch ganz gut leider habe ich immer wieder in unregelmäßigen Abständen 3 - 8 Tagen einen Programmabsturz mit der Meldung: "Pfad des fehlerhaften Moduls: C:/Windows/SysWOW64/ntdll.dll". Leider finde ich das Problem nicht und alle Tipps aus Google helfen auch nicht!

    Da ich das Problem nicht in den Griff bekomme aber die App rund um die Uhr laufen soll denke ich darüber nach einen Watchdog einzubauen, der, falls das Prog stehen bleibt ein Neustart macht. Leider habe ich nicht wirklich große Ahnung von der Programmierung eines Watchdog! Leider habe ich bis jetzt auch keine vernünftige Hilfe oder Anleitung gefunden.

    Fragen:
    1. Weiß jemand wo Hilfe für die Programmierung eines Watchdog finden kann?
    2. Gibt es andere Wege das zu lösen? (Vielleicht bessere oder einfachere)
    3. Wenn das Programm stehen bleibt, wird ein Fenster angezeigt, bei dem ich Auswählen kann: Debuggen, Schließen usw. Wie kann ich das umgehen?

    Ich hoffe jemand von Euch kann mir helfen! Schon mal herzlichen Dank!

    Mfg
    TipTip

  • #2
    1. Implementiere eine weitere Anwendung die die andere beobachtet ob die läuft oder nicht. Wenn nicht startet diese Anwendung die zu überwachende Anwendung. Da gibt es kein großes Geheimnis. Diese Anwendung sollte aber stabiler sein als die andere sonst ist nichts gewonnen.
    2. Wenn das Programm eh ständig laufen soll dann implementiere das als Dienst. Dienste kann man automatisch neu starten lassen wenn sie abstürzen.
    3. Das ist das Just-In-Time(Jit) Debugger Feature von Windows. Bei dem Dialog den du da beschreibst ist vermutlich Visual Studio als Jit Debugger registriert. Also hebe diese Registrierung auf oder registriere was anderes.

    Comment


    • #3
      Hallo Ralf,
      danke für deine Antwort!

      zu 1. Wie kann ich das realisieren? Eine Anwendung überwacht die andere! Muß ich dazu die Prozesse kontrolieren oder was wäre der beste Weg?
      zu 2. Meines Wissens nach kann ich in einem Dienst kein Überwachungsfenster anzeigen, bei ich kontrollieren kann was läuft oder?
      zu 3. Ok, das muss ich checken!

      Mfg
      TipTip

      Comment


      • #4
        1.) Der einfachste Weg wäre wenn der Watchdog derjenige ist der denn Prozess auch startet. Über die Prozess Klasse die Anwendung starten, sich das Prozess Objekt merken, regelmäßig über die Prozess Klasse prüfen ob die Anwendung noch da ist sonst neu starten.
        2.) Nein ein Dienst kann und sollte keine UI haben. Aber ein ewig laufender Prozess sollte keine eigen UI haben genauso wie der Watchdog bei einer Watchdog Lösung. Die UI braucht Resourcen und eigentlich alle UI Frameworks die ich kenne haben irgendwelche Lecks oder machen es einem zumindest leicht Lecks einzubauen die mittelfristig zum Absturz führen. Deine Zugriffsverletzung in der ntdll ist da ein typisches Kennzeichen. Einem Dienst kann man aber eine

        Comment


        • #5
          Hallo,
          also sollte ich meine Anwendung in einen Dienst umbauen, Richtig?

          Comment


          • #6
            Ohne deine Anwendung zu kennen. Höchstwahrscheinlich ja.

            Comment

            Working...
            X