Windows-Dienst / Eine neue Schutzseite für den Stapel kann nicht erstellt werden
Ich habe einen windows-Dienst, der hat einige intensive Arbeit jede minute (eigentlich ist es der Start einer neuen Faden jeder Zeit, in der es synchronisiert zu anderen Systemen über http). Das problem ist, dass nach ein paar Tage es plötzlich nicht mehr ohne keine Fehlermeldung.
Habe ich NLog in Ort und ich habe mich registriert für 'AppDomain.CurrentDomain.UnhandledException'. Der Letzte Eintrag in der Textdatei-log ist nur ein normaler Eintrag ohne Probleme. Blick in den EventLog habe ich auch nicht finden können jede Nachricht in der Anwendung anmelden, allerdings gibt es zwei Einträge in der system-log.
Man grundsätzlich sagt, das der Dienst wurde unerwartet beendet. Nichts mehr. Die zweite Veranstaltung (zur gleichen Zeit wie der erste), sagt: "...Eine neue Schutzseite für den Stapel kann nicht erstellt werden..."
Von dem, was ich gelesen habe, ist dies wahrscheinlich ein stack-overflow-exception. Ich bin nicht Parsen von beliebigen XML-und ich weiß nicht rekursiv arbeiten. Ich host einen webserver mittels Tor, Nancy und SignalR und haben RavenDB läuft im embedded-mode. Jede minute wird eine neue Aufgabe begonnen, die Taskfactory aus .NET 4.0 und ich habe auch ein ContinueWith, wo ich Sie wieder starten Sie ein System.Timer.Timer, um das Feuer wieder in einer minute.
Wie kann ich dieses Problem untersucht? Was könnten mögliche Gründe für diese Fehler?
- Ja, es ist SO. Es ist nicht verwalteter code, so berichtet es die Ausnahme anders. Sie haben eine Reihe von code, die Sie nicht geschrieben, es ist alles verdächtig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Basierend auf den Informationen, die Sie gegeben haben, würde ich mindestens, mindestens, tun Sie den folgenden:
AppDomain.CurrentDomain.UnhandledException
Ihnen nicht helfen - eineStackOverflowException
ist einer von Ihnen. Ich glaube, dass die CLR einfach nur geben Sie eine Zeichenfolge in diesem Fall statt einer stack-trace.Ein Beispiel eines Häufig übersehen
StackOverflowException
ist:Nur als ein "für was es Wert ist' - in meinem Fall dieser Fehler wurde gemeldet, wenn der code war versucht zu schreiben, um die Windows Event Log und der interaktive Benutzer nicht über ausreichende Berechtigungen. Dies war eine kleine console-app, die protokolliert, Ausnahmen in eine text-Datei und die Ereignis-log (falls gewünscht). Auf Ausnahmen, die text-Datei aktualisiert wurde, aber dann dieser Fehler wurde geworfen und nicht gefangen von der Fehlerbehandlung. Deaktivieren der Ereignisprotokollierung gestoppt, der Fehler Auftritt.
Nur im Fall einer anderen person mit dem gleichen problem, in meinem Fall habe ich festgestellt, dass meine windows-Dienst war gefangen in einem endlosen rekursiven Schleife versehen. Falls also jemand dieses problem haben, beachten Sie Methode nennt, verursachen riesige rekursive Schleifen.
Habe ich diese auf einem bestimmten computer und verfolgt Sie, um ein c# - Objekt, das auf sich selbst innerhalb einer Initialisierung