Was könnte eine .NET WinForms-Anwendung verursachen suddently ohne Dialog zu schließen?

StackOverflow https://stackoverflow.com/questions/201614

  •  03-07-2019
  •  | 
  •  

Frage

Unsere WinForms-Anwendung wird berichtet, auf seinem eigenen gelegentlich nur in der Nähe. Es zeigt weder unser eigener Absturz Fehler einreicht Dialog noch Windows' Fehlerdialog einreichen, es schließt gerade und ist weg, oft, wenn die Person war afk und nicht mit der Anwendung etwas zu tun. Es scheint ein halb seltenes Ereignis zu sein, vielleicht wie 2-3 mal pro Monat, und es ist mehr als eine Person passiert ist. Ich habe keine Ahnung, wo mit dem Erhalt einer repro Fall beginnen oder wo Tracking diese nach unten beginnen.

C # .NET 2.0 Gemeldete Fälle sind auf Win XP

Wer irgendwelche Ideen?

War es hilfreich?

Lösung

Stapel überläuft aufgrund unendliche Rekursion eine große Ursache für Apps sind ohne Vorwarnung verlassen. Es sei denn, Sie etwas absichtlich verursachen einen stillen Ausgang gemacht haben, dann nicht behandelte Ausnahmen (außer Stack-Überlauf) werden in der Regel eine Art von UI angezeigt werden, bevor die App beendet wird. Stack-Überlauf ist die häufigste Ausnahme (oops, sorry) zu dieser Regel.

Natürlich von nicht verwalteten oder unsicherem Code ist es fast sicher möglich, die Laufzeit in der richtigen Weise zu stören einen stillen Ausgang zu führen.

Die Vorschläge über Instrumentierung und Blick auf das Windows-Ereignisprotokoll sind auch gut.

Andere Tipps

Ausnahmen verursachen eine App zu „verschwinden“. Überprüfen Sie die Ereignisprotokolle, um zu sehen, ob alles da war.

Überprüfen Sie den Task-Manager, um zu sehen, ob der Prozess noch vorhanden ist, wenn das Fenster verschwindet. Ich habe Explorer Absturz hatte und nicht das Fenster neu zu zeichnen, bis sie Alt-Tabbed oder Switched-To (von Task-Manager) waren.

Dont setzen es vorbei an den Benutzer bequem vergessen, dass sie die App schließen. Sie können einige Logging-Logik in der App setzen Benutzer initiiert Schließungen zu protokollieren. Das nächste Mal, es „verschwindet“ Sie für alle Log-Einträge überprüfen.

Sie können eine gewisse Logik in der Formclosing Ereignis fügen Sie den Benutzer zu fragen, ob das ist, was sie wirklich tun wollen, können Sie dann die Abschlussveranstaltung abzubrechen und Ihre Anwendung wird weiterhin ausgeführt, wenn alles gut ist. Wenn Sie dieses Problem halten zu merken und es führt nie Ihre Logik, Sie gehen zu müssen, um die Hände schmutzig im Debugger zu erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top