2011-09-22 9 views
8

Ho avuto un utente mi mandi in un crash report da una chiamata a Settings.Upgrade():Come viene danneggiato il mio file di configurazione user.config?

 
System.Configuration.ConfigurationErrorsException: Root element is missing. 

lui ho avuto modo di inviarmi il suo fascicolo user.config e il file è stato tutti zeri. In qualche modo si era corrotto.

Ho trovato un modo per ripristinarlo aggirando la directory% localappdata% \ MyAppName ed eliminando tutti i file di configurazione utente e riavviando l'app. Se lascio che l'app continui l'esecuzione, fornirebbe ulteriori ConfigurationErrorsException s.

Questa corruzione potrebbe essere il risultato di qualcosa che ho fatto? Ho avuto più segnalazioni da una base di poche migliaia di utenti, ma non ho avuto problemi con quel file direttamente. Qualcun altro ha incontrato questo danneggiamento di user.config?

risposta

4

Solo un'idea che ho avuto da questo article.

Puoi controllare la versione di .NET framework e se è così, hai fatto qualche aggiornamento di recente che potrebbero aver alterato i metodi che si sta utilizzando?

Un altro era questo article (è un po 'vecchio - 2008) ma fornisce alcuni suggerimenti su come gestire il file di configurazione danneggiato.

Può anche essere un problema di memoria causata dall'applicazione non essere in grado di poliziotto con il tasso di utente corrente?

speriamo vi sia utile in quanto non è ancora successo a me, ma ancora un dilemma interessante e sconcertante.

+0

Penso che tutto sia solo su .NET normale. Per quanto riguarda il secondo articolo, ottenere il percorso esatto per il file incriminato è un buon espediente per individuare il file corrotto piuttosto che fare un bulk delete. Cambierò la mia gestione per usarlo invece. – RandomEngy

+1

Ho riscontrato lo stesso problema 4 volte su poche migliaia di app installate. Ciò si verifica durante interruzioni di corrente. L'eliminazione del file rende l'app funzionante, ma perdi le impostazioni dell'utente. Morale: non utilizzare le impostazioni di Microsoft o, meglio ancora, fare app web invece. –

+1

Follow-up: ora sto memorizzando le impostazioni usando SQLite, che resiste a questo tipo di corruzione. Non ho avuto più problemi come questo. – RandomEngy

1

Le impostazioni sembrano danneggiate se si eseguono più istanze dell'applicazione. Sembra che si tratti di un problema di temporizzazione, ma un modo relativamente semplice per riprodurre è di avviare l'applicazione stessa e quindi di uscire e provare a salvare le impostazioni all'uscita.

Problemi correlati