Ich habe von einem Benutzer einen Absturzbericht von einem Aufruf an Settings.Upgrade()
:
Ich habe ihn dazu gebracht, mir seine Datei user.config zu schicken, und die Datei bestand nur aus Nullen. Es war irgendwie korrupt geworden.
Ich habe einen Weg gefunden, um das Problem zu beheben, indem ich das Verzeichnis% localappdata% \ MyAppName rootet und alle Benutzerkonfigurationsdateien lösche und die App neu starte. Wenn ich die Ausführung der App fortsetzen lasse, würde dies ConfigurationErrorsException
s ergeben.
Könnte diese Korruption das Ergebnis von etwas sein, das ich getan habe? Ich hatte mehrere Berichte von einer Basis von ein paar tausend Benutzern, aber ich habe diese Datei nicht direkt durcheinandergebracht. Hat sonst noch jemand in diese user.config Korruption gestoßen?
Nur eine Idee, die ich von diesem Artikel bekommen habe.
Können Sie Ihre .Net-Framework-Version überprüfen und wenn ja, haben Sie kürzlich eine Aktualisierung durchgeführt, die möglicherweise verwendete Methoden geändert hat?
Ein anderer war dieser Artikel (es ist ein bisschen alt - 2008), aber es gibt einige Hinweise darauf wie man mit der beschädigten Konfigurationsdatei umgeht.
Kann es sich auch um ein Speicherproblem handeln, das dadurch verursacht wird, dass die Anwendung die aktuelle Benutzerrate nicht verarbeiten kann?
Ich hoffe, es hilft, da es mir noch nicht passiert ist, aber immer noch ein interessantes und rätselhaftes Dilemma.
Einstellungen scheinen beschädigt zu werden, wenn mehrere Instanzen Ihrer Anwendung ausgeführt werden. Es scheint ein Timing-Problem zu sein, aber ein relativ einfacher Weg zu reproduzieren ist, dass die Anwendung selbst startet und dann beendet wird und versucht, die Einstellungen beim Beenden zu speichern.