Wo finde ich die Quelle der verwalteten Ausnahmen, die nicht direkt aus meinem Code stammen?

9

Ich entschuldige mich im Voraus, wenn das wirklich eine Super-User-Frage ist ... Ich war mir einfach nicht sicher, aber das scheint mehr auf dem Entwickler zu sein. Seite als auf der Tech-Support-Seite. :)

Das ist nicht unbedingt ein Problem, aber es macht mich wirklich total verrückt auf meinem System. Es passiert auch nur auf meinem Computer.

Wenn ich eine Anwendung, auch eine leere WPF-Anwendung, starte, sehe ich vier Ausnahmen:

  

In PresentationCore.dll
ist eine erste Möglichkeit vom Typ 'System.IO.DirectoryNotFoundException' aufgetreten   Eine erste Möglichkeitsausnahme des Typs 'System.ArgumentException' ist in mscorlib.dll aufgetreten   Eine erste Möglichkeitsausnahme des Typs 'System.ArgumentException' ist in mscorlib.dll aufgetreten   In PresentationCore.dll

trat eine erste Möglichkeitsausnahme vom Typ 'System.InvalidOperationException' auf

Um herauszufinden, wo diese herkommen, setze ich VS2008 so, dass es bei allen geworfenen CLR-Ausnahmen bricht, und hier ist die Information:

Ausnahme # 1:
Es wurde kein Teil des Pfades "D: \ Dell \ Reader2.0 \ SPLASH.SYS \ fonts \ AscenderUni.ttf" gefunden.

Ausnahme # 2:
Der Kulturname 'ug' wird nicht unterstützt.
Parametername: Name

Ausnahme # 3:
Der Kulturname 'ug' wird nicht unterstützt.
Parametername: Name

Ausnahme # 4:
Es gibt keine registrierte CultureInfo mit dem IetfLanguageTag 'ug'.

Ich habe durch Process Monitor und Process Explorer gestöbert. Process Monitor zeigt, dass meine Anwendung einen RegQueryValue ausführt, für den ich sicher nicht verantwortlich bin ... aber einige DLLs (vermutlich von Dell Crapware) werden von meinem Prozess geladen und lesen diesen Registrierungsschlüssel. Ich schaute dann auf Process Explorer, in der Hoffnung zu sehen, welche DLLs meine Anwendung lädt, aber kann diese Informationen nicht finden. Ich habe dann PrcView ausprobiert und die Module gesehen, die meine Anwendung geladen hat.

Ich war überrascht zu sehen, wie viele andere Module geladen wurden, aber ich habe nichts von Dell gehört. Ich frage mich auch, wie es möglich ist, dass eine Norton Internet Security DLL in meinen Prozess geladen wurde, aber ich nehme an, dass Norton beabsichtigt und etwas Besonderes ist, um sicherzustellen, dass ein Prozess sicher auszuführen ist.

Was kann ich noch tun, um festzustellen und zu entfernen, wo diese Ausnahmen herkommen?

AKTUALISIEREN

Nicht sicher, ob es verwirrend ist, woran ich hier herankomme. Diese Ausnahme wird in einer DLL ausgelöst, die meine Anwendung aus irgendeinem Grund lädt (ich verweise auf nichts, das mit Dell in Verbindung steht). Ich habe diese App jetzt deinstalliert, und ich immer noch bekomme die dummen Ausnahmen. Es ist alles technisch gut, weil die Ausnahme irgendwo behandelt wird, vermutlich in dieser DLL, aber ich bin nur genervt, weil vier zusätzliche Nachrichten (eigentlich 8, da ich zwei Dialoge pro Ausnahme schließen muss) erscheinen Ich führe meine Bewerbung aus. Nennen Sie mich faul, aber ich habe diese verdammte DLL nie gefragt, ob sie überhaupt geladen werden soll. :)

Vielleicht ist es jetzt an der Zeit, msconfig zu verwenden, um einige Dell-Dienste zu deaktivieren. Ich werde später damit spielen, wenn ich Freizeit habe.

    
Dave 05.09.2010, 15:01
quelle

5 Antworten

17

Keine Dateibeschädigung. Als ich versucht habe, diese eine Zeitlang zu jagen, habe ich herausgefunden, was passiert ist. Irgendwo auf dem Weg wurde eine Schriftart mit uigurischer Kultur installiert, die anscheinend eine türkisch-chinesische Kultur ist (so gut ich das beurteilen kann) und ihr CultureInfo-Tag? "ug". Wenn die Zeichensätze zwischengespeichert wurden, versuchte das System, die uigurische Kultur zu laden. Leider scheint meine Installation von Windows diese Kultur in Windows auffallend zu vermissen. In dem Wissen, dass ich die Kultur auf meiner Maschine nicht bald verwenden werde, habe ich die Anweisungen auf MSDN befolgt, um eine neue Kultur zu erstellen und zu installieren.

Obwohl der Fehler nichts Wichtiges schadet. Es ist nur eine Ausnahme der ersten Chance, schließlich war es nervtötend der Mist von mir. Also hier ist was ich getan habe.

  1. Erstellen Sie eine neue Konsolenanwendung.
  2. Fügen Sie einen Verweis auf sysglobal hinzu.
  3. Fügen Sie den folgenden Code hinzu:

    %Vor%
  4. Erstellen.

  5. Führen Sie die kompilierte ausführbare Datei als Windows-Administrator aus dem Windows Explorer aus (hierfür benötigen Sie Administratorrechte).

Wenn alles gut geht, sollte sich nun eine Datei in C: \ windows \ Globalization namens "ug.nlp" befinden.

Sie sollten diese Nachricht nicht mehr erhalten.

    
David Morton 20.10.2010, 14:16
quelle
2

Ich hatte das gleiche Problem. Es verschwindet, nachdem ich es getan habe:

Löschen Sie den WPF-Schriftarten-Cache und starten Sie Visual Studio neu. Löschen Sie den Cache: Ссылка

Eric

    
Eric Ouellet 27.08.2012 19:57
quelle
1

Es ist sehr unwahrscheinlich, dass es sich um die Schaufelware auf Ihrem Gerät handelt. Diese DLLs müssen sich auch in nicht verwaltete Programme einfügen, sie müssen in einer Sprache geschrieben sein, die nicht von der CLR abhängt, wie C oder C ++. Und dementsprechend können verwaltete Ausnahmen nicht generiert werden.

Diese Ausnahmen sehen für mich wie Maschinenkonfigurationsprobleme aus. Junk in Ihrer Registrierung. Der Name der schlechten Kultur (klingt wie "uns" wurde zu "ug" beschädigt) erzeugt drei von ihnen, die Schriftart ist wahrscheinlich in der Registrierung aufgeführt, aber fehlt von der Festplatte.

Kurz von einer Neuinstallation des Betriebssystems könnten Sie dies möglicherweise diagnostizieren, indem Sie sowohl ProcMon als auch den Debugger verwenden. Verwenden Sie das Kontrollkästchen Debug + Exceptions, Throwed (Error + Exceptions, Thrown), um den Debugger bei der Ausnahme der ersten Chance zu stoppen. Wenn es auf ProcMon trifft, sollte der Registrierungsschlüssel oder die Datei sehr nahe am Ende der Ablaufverfolgung angezeigt werden.

    
Hans Passant 05.09.2010 16:33
quelle
1

Mit Hinweisen aus den obigen Antworten konnte ich dieses Problem lösen, indem ich die Schriftart "Microsoft Uighur Regular" löschte.

    
Terrence 23.05.2012 18:07
quelle
0

Ausnahmen der ersten Chance sind normal - sie werden immer dann angezeigt, wenn eine Ausnahme ausgelöst wird, egal, ob sie behandelt wurde oder nicht. Sie existieren, damit Sie in Ihren Code gehen und herausfinden können, warum sie geworfen werden.

Wenn jedoch die Ausnahme behandelt wurde, gibt es kein Problem und die Ausführung wird fortgesetzt.

Wenn die Ausnahme nicht behandelt wurde, wird eine zweite Chance vom Debugger abgefangen und die Ausführung angehalten.

Das ist normal und sollte nicht wichtig sein. Sie können sie immer ausblenden - siehe this Frage und Antworten für weitere Details.

In Bezug auf die tatsächlichen Ausnahmen - es gibt Code (Dritter oder Ihre eigene), der versucht, auf ein ttf in dem erwähnten Verzeichnis zuzugreifen, das kann nicht gefunden werden, daher die Ausnahme (die behandelt wurde, also nein Problem).

Die anderen Ausnahmen sind darauf zurückzuführen, dass nicht vorhanden CultureInfo ( ug ) ist - vielleicht ist dies der Fall soll uk sein? Überprüfen Sie die Konfiguration und den Code dafür.

Diese Werte können in der Registrierung konfiguriert werden.

    
Oded 05.09.2010 15:47
quelle

Tags und Links