Announcement

Collapse
No announcement yet.

Remote Processes Überwachen

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

  • Remote Processes Überwachen

    Ich möchte von einem Client aus, prüfen ob eine Anwendung auf dem Server noch läuft oder ob "keine Rückmeldung erscheint".

    Auf dem lokalen Rechner würde man mittels Process.responding prüfen.

    Hier vereinfacht das Coding, das lokal auch funktioniert:

    Dim PR As Process
    Dim PRs As Process() = Process.GetProcessesByName("Testprozess")
    If PRs Is Nothing Then
    Else
    PR = PRs(0)
    If Not PR.Responding Then
    PR.Kill()
    Process.Start("C:\Dokumente und Einstellungen\ich\Desktop\Testprozess")
    End If
    End If

    es gibt ebenfalls die Überladung:
    Dim PRs As Process() = Process.GetProcessesByName("Testprozess","TESTSERV ER")

    jedoch erhält man bei "PR.responding" immer die Fehlermeldung, Funktion ist remote nicht durchführbar.

    Wie kann ich dies denn dann lösen (bitte mit kurzem Beispiel bzw. Link) ?

    Ich möchte einfach prüfen, ob eine Anwendung auf dem Server noch am Leben ist bzw. nicht mehr antwortet,
    und dementsprechend den Prozess killen und nochmals neu starten.


    Vielen Dank für jedliche Unterstützung.

  • #2
    Eine Frage einmal zu stellen genügt. Dann sollte auch der Code passend markiert sein, siehe den obersten Hinweis von gfoidl (so ist er miserabel zu lesen). Und im C#-Unterforum mit VB zu kommen - ich weiß ja nicht. Zur Sache kann ich nichts sagen. Jürgen

    Comment


    • #3
      Process.Responding schickt dem Process einfach eine synchrone WindowsMessage (die letztlich nichts tut) wenn nach einem bestimmten Timeout der synchrone Aufruf nicht zurückkehrt wird angenommen das der Process wohl keine WindowsMessages mehr bearbeitet und es wird behauptet der Process hängt.

      WindowsMessages haben über Rechnergrenzen hinaus keine Bedeutung kann also Remote nicht funktionieren. Wie Process.Responding arbeitet ist aber auch sehr speziell auf Desktopprozesse abgestimmt (muß eine MessageLoop haben) und auf Serverprocess nur bedingt anwendbar.

      Du mußt erst einmal also definieren woran du erkennen willst das der Process nicht mehr läuft(Welche Indikatoren sind für deinen Process relevant). Dann können wir uns überlegen ob man an diese Information remote drankommt.

      Comment

      Working...
      X