Laden...

Server-Anwendung stürzt ohne erkennbaren Grund ab

Erstellt von Palladin007 vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.719 Views
Palladin007 Themenstarter:in
2.078 Beiträge seit 2012
vor 6 Jahren
Server-Anwendung stürzt ohne erkennbaren Grund ab

Guten Vormittag,

folgende Situation:

Wir haben eine mit .NET entwickelte Server-Anwendung, die permanent irgendwelche Sachen tut.
Alles was die tut, wird genau überwacht und jeder Fehler wird gnadenlos abgefangen und in's Log geschrieben.
Oder in kurz: Das verdammte Ding darf nicht abstürzen und das tut's normalerweise auch nicht.

Nun hab ich aber einen Windows-Task (selber Windows-Server) getestet, der eben diesem Server per WCF eine Aufgabe schickt.
Dazu gehört 1. eine anstrengende Datenbank-Abfrage und 2. eine Email, die versendet wird.
Prinzipiell alles keine Aufgaben, die weh tun, gibt genug andere ähnliche Fälle.

Nun hab ich den Task gestartet und mir gleichzeitig am Server die Log-Ausgabe angeschaut um das Ergebnis zu sehen.
Just in dem Moment teilt mir Windows mit, dass das Programm - nicht der Task, sondern die Server-Anwendung - nicht mehr funktioniert.
Wenn ich mir mein Log anschaue, ist da aber kein Fehler erkennbar, die Aufgabe wurde korrekt ausgeführt. Ob die Mail auch wirklich angekommen ist, finde ich noch raus.

Nun bleibt die Frage: Warum?
Uns geht dabei ein bisschen der A**** auf Grundeis. Was ist, wenn der mal wieder abstürzt, dann aber nacht's und ich bin nicht gerade zufällig angemeldet?
Das darf nicht passieren, daher muss ich heraus finden, wo der Fehler her kam.

Ich hab nur die Problemsignatur, mehr konnte ich zu dem Fehler nicht finden:

Problemsignatur
Problemereignisame:	CLR20r3
Problemsignatur 01:	MyCoolServer.exe
Problemsignatur 02:	1.2.3.4
Problemsignatur 03:	5a17de4c
Problemsignatur 04:	System
Problemsignatur 05:	4.7.2114.0
Problemsignatur 06:	59a63a25
Problemsignatur 07:	1787
Problemsignatur 08:	2b6
Problemsignatur 09:	JIQI25QQYH0510V2HICZDZZJ25D5L3DH
Betriebsystemversion:	6.3.9600.2.0.0.400.8
Gebietsschema-ID:	1031
Zusatzinformation 1:	5861
Zusatzinformation 2:	5861822e1919d7c014bbb064c64908b2
Zusatzinformation 3:	5f25
Zusatzinformation 4:	5f2531ae070278f893fa99352dadd49e

Weitere Informationen über das Problem
Bucket-ID:	a7f1d042cfba1108535fdf33692ff303 (1396079821409219331)

Kann mir jemand sagen, wie ich heraus finden kann, was das bedeutet?
Wenn möglich ohne irgendwas installieren zu müssen.
Im Idealfall, kann ich das anhand die Binaries auch auf meinem lokalen Rechner interpretieren.

Mir fallen auch nur zwei Möglichkeiten ein, wann ein catch nicht fangen kann:
StackOverflowException
OutOfMemoryException

Oder hat jemand noch eine andere Idee?

Besten Dank für die Hile

Gruß

PS:
Wenn das Unterforum hier nicht passt - kann ein freundlicher Moderator/Admin das Thema verschieben?
Für mich klang das am passendsten.

Palladin007 Themenstarter:in
2.078 Beiträge seit 2012
vor 6 Jahren

Fehler Nr. 2:

Problemsignatur
Problemereignisame:	CLR20r3
Problemsignatur 01:	MyCoolServer.exe
Problemsignatur 02:	1.2.3.4
Problemsignatur 03:	5a17de4c
Problemsignatur 04:	System
Problemsignatur 05:	4.7.2114.0
Problemsignatur 06:	59a63a25
Problemsignatur 07:	1787
Problemsignatur 08:	2b6
Problemsignatur 09:	JIQI25QQYH0510V2HICZDZZJ25D5L3DH
Betriebsystemversion:	6.3.9600.2.0.0.400.8
Gebietsschema-ID:	1031
Zusatzinformation 1:	5861
Zusatzinformation 2:	5861822e1919d7c014bbb064c64908b2
Zusatzinformation 3:	5f25
Zusatzinformation 4:	5f2531ae070278f893fa99352dadd49e

Und wir sind immer noch ratlos ...

W
195 Beiträge seit 2008
vor 6 Jahren

Ohne zu wissen, was und wie diese 'ServerAnwendung' genau macht, wird Dir hier wahrscheinlich keiner diese Fragen beantworten können.

Nur mal ganz grundsätzlich:
Ist die 'ServerAnwendung' ein Dienst? Wenn ja, kannst Du dort schon einiges einstellen, was passieren soll, wenn der Dienst 'abstürzt'. Ausserdem böte sich die Verwendung eines sog. WatchDogs an - ein zweiter Dienst, der nur nachschaut ob der erste bereits läuft und wenn nicht diesen startet. In einer perfekten Welt würde Dein ServerDienst dann auch noch den Watchdog überwachen, so dass beide sich gegenseitig ständig 'im Auge' haben...

Ist Deine ServerAnwendung kein Dienst, solltest Du das so handhaben, dass die Anwendung nur gestartet wird, wenn das abarbeiten notwendig ist - also starten, Aufgaben erledigen und danach wieder beenden. Müssen die Aufgaben regelmässig erledigt werden, kannst Du die ANwendung als geplanten Task starten (mit den Bordmitteln von Windows).

Palladin007 Themenstarter:in
2.078 Beiträge seit 2012
vor 6 Jahren

Ist kein Dienst - leider, ist aber weit oben auf unserer ToDo-Liste, daraus einen Dienst zu machen.

Die Server-Anwendung tut prinzipiell nichts, bis ihm jemand was Anderes sagt.
Sie wartet auf Aufgaben von vielen verschiedenen Clients, die rund um die Uhr was haben wollen.
Nur starten, wenn notwendig, ist daher keine Option, der Server würde sowieso rund um die Uhr laufen.

An einem sehr rudimentären WatchDog arbeite ich gerade.
Nichts groß spannendes, nur dass ich sicher sein kann, dass der Server auch die Nacht überlebt 😠
Bisher macht mir aber die Exception-Message von Windows noch Problem, mal schauen, wie ich mit bekomme, dass der Prozess nicht mehr läuft 🤔

Mir ging's mit meiner Frage auch mehr darum, heraus zu finden, was Windows mir mit der Problemsignatur sagen will. Das ist leider das Einzige, was wir bisher haben, irgendwas muss das doch bringen 😠

4.931 Beiträge seit 2008
vor 6 Jahren

Unter Windows Error Reporting and CLR integration gibt es eine Beschreibung der einzelnen Felder.

Problemsignatur 09: JIQI25QQYH0510V2HICZDZZJ25D5L3DH Dies ist wohl die Exception - aber ich weiß leider nicht, wie man diese wieder "unmangled".

Das beste wäre jedoch wenn du Dump Files erzeugen lassen würdest, wie in Interpreting Windows Error Reporting ouput verlinkt: Collecting User-Mode Dumps.

Palladin007 Themenstarter:in
2.078 Beiträge seit 2012
vor 6 Jahren

Die Seite hab ich auch gesehen und ich bin bei ...

Dies ist wohl die Exception - aber ich weiß leider nicht, wie man diese wieder "unmangled".

... ebenfalls hängen geblieben.

Ob ich ein Dump bekommen kann oder sagen kann, dass er eins erstellen kann, muss ich schauen.
Bisher kenne ich mich damit kaum aus.

H
114 Beiträge seit 2007
vor 6 Jahren

Hallo Palladin007,

hast du schon mal in den Event Log (via EventViewer bzw. Ereignisanzeige) vom Betriebssystem selber nachgeschaut? Bisher hab ich da immer einen Hinweise auf die Ursache gefunden, wenn sich eine .NET Anwendung scheinbar grundlos verabschiedet hat.

Grüße, HiGHteK

Palladin007 Themenstarter:in
2.078 Beiträge seit 2012
vor 6 Jahren

Da steht auch nicht mehr drin, zumindest nichts, womit ich groß was anfangen kann:

- System 

  - Provider 

   [ Name]  Application Error 
 
  - EventID 1000 

   [ Qualifiers]  0 
 
   Level 2 
 
   Task 100 
 
   Keywords 0x80000000000000 
 
  - TimeCreated 

   [ SystemTime]  2017-11-28T11:00:40.000000000Z 
 
   EventRecordID 74986 
 
   Channel Application 
 
   Computer MyCoolServer
 
   Security 
 

- EventData 

   MyCoolServer.exe 
   1.2.3.4
   5a17de4c 
   KERNELBASE.dll 
   6.3.9600.18666 
   58f32841 
   e0434352 
   00015608 
   1d0c 
   01d36827941c8f41 
   c:\path\MyCoolServer.exe 
   C:\Windows\SYSTEM32\KERNELBASE.dll 
   5e649dee-d42b-11e7-80d3-00155d0a0101

Wegen der Dumps:
Legt Windows nicht selber Dumps irgendwo an?
Weiß jemand, wo die liegen?

PS:
Wir haben jetzt erst mal etwas umfangreicheres Logging drum rum gebaut.
Die Logs, die wir hauptsächlich nutzen, betrifft die Commands, deren Start, Ausführung und Ende.
Der Kram, der die ausführt, wird jetzt etwas umfangreicher geloggt.

Blöd wäre natürlich, wenn's jetzt nicht mehr abstürzt, immerhin lief der seit dem letzten Update tagelang rund um die Uhr ohne einen Fehler.

Palladin007 Themenstarter:in
2.078 Beiträge seit 2012
vor 6 Jahren

Ok, ich hab eine Exception 8)

Fehlermeldung:
System.Net.Mail.SmtpFailedRecipientsException

Das gibt Sinn, denn das Mail senden ist das einzige, worauf nicht gewartet wird.
Das läuft in einem eigenen Task eigenständig weiter.

656 Beiträge seit 2008
vor 6 Jahren

Da steht auch nicht mehr drin, zumindest nichts, womit ich groß was anfangen kann: [...]

Nur um hier noch kurz einzuhaken; üblicherweise finden sich in dem Fall drei (oder zumindest zwei) Einträge im Event Viewer unter "Windows Logs" > "Application": Eins von "Windows Error Reporting" (was du hier gepostet hast, was leider auch sinnlos ist; und üblicherweise auch nur das Level "Information" hat), eins von "Application Error" (mit Level "Error" wo zumindest der Pfad zur Datei stehen sollte) und bei .NET Programme von ".NET Runtime" (auch "Error") wo dann oft ein Stacktrace drinsteht. Letzterer ist der interessante (sofern es sie gibt).

Palladin007 Themenstarter:in
2.078 Beiträge seit 2012
vor 6 Jahren

Stimmt, Du hast recht
Wusste ich bis dato nicht 🤔

Danke für den Tipp, sowas ist immer gut zu wissen ^^