SEHException (Applications crash or become unresponsive)



  • Hallo Experten,

    auf Terminal-Servern tritt das Problem

    https://support.microsoft.com/en-us/help/2536487/applications-crash-or-become-unresponsive-if-another-user-logs-off-a-r

    mit steigender Anzahl der Anwender häufiger auf.

    In der Vorgänger-Version mit Visual Fox Pro erstellt kam es häufig zu Einträgen
    im Windows-Protokoll für Anwendungen zu "application hang error" wovon das Inet
    voll mit Beiträgen ist ...

    https://www.administrator.de/frage/terminalserver-2012r2-application-hang-nichts-geht-323905.html#comment-1161258

    Nun wurde die Anwendung auf .NET-Basis gestellt und es treten sporadisch diese SEHExceptions auf. Eigentlich immer im Zusammenhang mit dem Lesen
    von XAML-Ressourcen bei Initialisieren der Views. Es ist eine WPF-Anwendung.

    Die Anwendung wird teils lokal auf dem TS gestartet, teils über ein Netzlaufwerk gestartet. Einen wirklichen Unterschied möchte ich da nicht erkennen bezüglich
    der Ausnahmen. Die Probleme existieren grundsätzlich schon länger - leider wurden diese wohl aufgrund des Zustandes der Anwendung nicht mehr vom Anwender
    gesendet.

    Hat wer als Programmierer oder TS-Betreiber Erfahrungen mit derartigen Problemfällen und ist es wirklich kein Marketing-Gag ein Upgrade auf 2016 ?



  • Du schreibst wirr.
    Was haben die SEHException mit dem Visual Fox Pro Problem zu tun?
    Und wieso gehst du davon aus dass ein "When you run an application from a mapped drive..." KB-Eintrag mit einem Problem zu tun hat das auch auftritt wenn man die Anwendung lokal startet?



  • Eine Anwendung:
    Version1 mit VFP erstellt
    Version2 mit NET erstellt

    Version 1 liefert "application hang" und C000006 - "in page error"
    C00006 aber vornehmlich beim Drucken.

    Version2 liefert keine "application hang" dafür aber SEHExceptions

    Beispiel was für alle dieser Ausnahmen exemplarisch ist - andere Varianten treten nicht auf.

    Ausnahme:    	System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht. ---> System.Runtime.InteropServices.SEHException: Eine externe Komponente hat eine Ausnahme ausgelöst.
       --- Ende der internen Ausnahmestapelüberwachung ---
       bei System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
       bei System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
       bei System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
       bei System.Activator.CreateInstance(Type type, Boolean nonPublic)
       bei System.Activator.CreateInstance(Type type)
       bei Cinch.ViewResolver.CreateView(String viewName)
    

    Und das auch nur bei Installationen auf Terminal Servern.
    Bei Installationen wo ich weiß da arbeiten max. 2-3 Personen tritt das Problem
    aller paar Wochen oder Monate auf. In anderen Fällen mit 15 Personen gleichzeitig tritt es pro Anwender einmal am Tag auf. Recht zuverlässig.

    Ich bin noch dabei mir ein MemoryDump zu besorgen, wenn der Fall eintritt. Das Problem korrespondiert auch mit der Anzahl der aktiven TS-Nutzer.



  • Ja, klingt doof.
    Ich hab mit WPF nicht all zu viel Erfahrung. Ein Problem das ich mal hatte war dass WPF seine Interop-Bitmaps nicht deterministisch freigibt sondern allen ernstes vom GC collecten lässt. Was dann wenn man oft und schnell Fenster mit D3D-basierten Controls drinnen auf und zu macht zu Problemen führen kann. Wenn du schreibst bei vielen Usern passiert es demtentsprechend öfter... vielleicht hängt das bei dir auch damit zusammen.

    Falls es daran liegt, kann man das Problem "beheben" indem man periodisch GC.Collect() aufruft. Ist natürlich ganz viel pfui, aber wenns funktioniert (und sonst nix hilft)...

    Ansonsten halt die Standardsachen durchprobieren. Also z.B. unterschiedliche Frameworkversionen probieren.


Anmelden zum Antworten