Laden...

FontCache deaktivieren

Erstellt von Lector vor 13 Jahren Letzter Beitrag vor 13 Jahren 5.414 Views
L
Lector Themenstarter:in
862 Beiträge seit 2006
vor 13 Jahren
FontCache deaktivieren

Hallo liebe Community,

Ich suche eine Möglichkeit den FontCache von WPF für meine Anwendung zu deaktivieren.

Der Grund dafür ist dass sich eine WPF-Anwendung bei einem korrupten FontCache komplett aufhängt (1 Kern voll ausgelastet, GUI reagiert nicht mehr). Wir haben in letzter Zeit hin und wieder mal Bugreports bekommen bei denen sich das Fenster unserer Anwendung nicht öffnete. Stattdessen sah man nur ein schwarzes Rechteck wo das Fenster sein sollte. Die Einträge im Logfile endeten an der Stelle wo das Fenster angezeigt werden sollte. Diese Woche hatten wir das gleiche Problem an einem PC in unserer Firma. Sobald man bestimmte Fenster öffnen wollte hat sich die GUI aufgehängt. Ich habe dann solange rumprobiert bis ich rausgefunden habe dass es am Copyright-Zeichen liegt. Sobald ich dieses Zeichen aus dem Info-Fenster entfernt hatte ging es wieder. Danach habe ich herausgefunden dass sich die Anwendung auch aufhängt wenn man das Copyright-Zeichen in eine TextBox schreibt. Das ging auch mit anderen Sonderzeichen. Beim Buchstaben Ü konnte ich das reproduzieren. Ö und Ä verursachten keine Probleme.

Irgendwann habe ich dann herausgefunden dass es am WPF-Font-Cache lag. Nachdem wir diesen gelöscht hatten ging alles wieder.

Nun bin ich am überlegen wie wir zukünftig mit diesem Problem umgehen. Ich bin mir ziemlich sicher dass der FontCache das Problem für einige der Bugreports aus der Vergangenheit war. Nun würde ich dieses Problem zukünftig gerne vermeiden. Ist es irgendwie möglich den FontCache für meine Anwendung komplett zu deaktivieren so dass es gar nicht zu diesem Problem kommen kann? Hatte jemand von euch bereits einmal Probleme mit dem FontCache?

1.029 Beiträge seit 2010
vor 13 Jahren

Hallo,

erster Googletreffer für "wpf fontcache":
http://social.msdn.microsoft.com/Forums/en/wpf/thread/aa7b8449-fd93-4f91-a602-26ce1b73dc85

Wünsch dir dasses funzt 😉

Gruß
Achim

L
Lector Themenstarter:in
862 Beiträge seit 2006
vor 13 Jahren

Hallo Taipi88,

Das habe ich bereits gefunden. Mir geht es aber nicht darum den FontCache auf einen bestimmten PC zu löschen (das habe ich bei unserem Problem-PC bereits gemacht) sondern ihn generell in meiner Anwendung zu deaktivieren so dass es gar nicht zu solchen Problemen kommen kann.

6.862 Beiträge seit 2003
vor 13 Jahren

Hallo,

man kann den nicht anwendungsweit deaktivieren, nur systemweit indem man den Service deaktiviert.

Hier gibt auch nen KB Artikel dazu welcher ein wenig mögliche Ursachen nennt.

Baka wa shinanakya naoranai.

Mein XING Profil.

L
Lector Themenstarter:in
862 Beiträge seit 2006
vor 13 Jahren

Wenn man ihn nicht deaktivieren kann ist das natürlich doof weil wir immer wieder solche Probleme haben werden... Normalerweise müsste WPF automatisch merken dass im FontCache irgendwas nicht stimmt und ihn dann selbst leeren.

6.862 Beiträge seit 2003
vor 13 Jahren

Hallo,

habt ihr mal Ursachenforschung betrieben warum überhaupt der Cache korrupiert wird? Einzelne Zeichen an sich sind sicherlich nicht Schuld. Arbeite selber mit allen möglichen Sonderzeichen aus zig Sprachen und hatte noch nie das Problem. Lassen sich bei den betroffenen Systemen irgendwelche Gemeinsamkeiten feststellen die das Problem eingrenzen können?

Baka wa shinanakya naoranai.

Mein XING Profil.

L
Lector Themenstarter:in
862 Beiträge seit 2006
vor 13 Jahren

Die Fehler sind nur pro System reproduzierbar. Je nachdem wo was am Cache kaputt ist gehen eben bestimmte Zeichen nicht. Wenn auf einem anderen System der Cache korrupt ist sind das dort aber höchstwarscheinlich ganz andere Zeichen. Auf unserem System ist die Software nur bei relativ selteten Zeichen abgestürzt. Bei anderen Systemen hatten wir das Problem dass nichteinmal unser StartScreen angezeigt wurde weil dort warscheinlich irgendein häufiges Zeichen kaputt war.

Die Ursache für den kaputten Cache kann ich leider nicht mit Sicherheit bestimmen. Laut einigen Quellem im Internet soll es daran liegen dass bestimmte Grafikkartentreiber den Chache überschreiben wenn dieser im RAM ist. Das steht auch in dem von dir genannten Link.

Auf jeden Fall sehe ich keine Möglichkeit von meiner Anwendung aus zu verhindern dass der Cache kaputt geht. Das müsste MS eigendlich selbst erkennen und gegebenenfalls korrigieren bzw. den Cache weglöschen. Stattdessen wird das Problem zum Benutzer geschoben. Um das Problem generell zu vermeiden hatte ich vor den Cache einfach gar nicht zu benutzen.