2012-02-14 81 views
1

デスクトップアプリケーションプロジェクトでは、設定変数を使用してアプリケーションのユーザー設定を保存します。さらに、最新バージョンのアプリケーションでは、これらの変数をアップグレードしてユーザー設定を保持します。user.config破損の問題

通常、正常に動作しますが、最近エンドユーザーの1人がエラーConfiguration System failed to initializeを報告しました。エラーはuser.configファイルに関連しています。そのため、ユーザーにファイルの送信を依頼しました。

フォルダを受信した後、3つのファイル(c3begfjb.newcfg,c3begfjb.tmpおよびuser.config)が含まれていることに気付きました。 c3begfjb.tmpは空のファイルですが、c3begfjb.newcfguser.configは同じファイルです。私たちはこれらのファイルを開こうとしましたが、user.configのデータは読めない形式のファイルではなく、適切なXMLです。

これらのファイルを作成した可能性がありますどのような問題やアイデアのいずれかを経験していたか、壊れたuser.configファイル。

+1

ディスクは悪くはありません。彼のマシンを修正するようにあなたのユーザーに教えてください。 –

+0

@Maverick - あなたの痛みを感じます。私は非常に頻繁にこの問題に苦しんでいるアプリケーションを持っています。通常、ユーザーは再起動中に起こると言います。おそらく、Windowsのアップデート自動再起動です。これはまた、破損した設定ファイルが検出された場合にファイルを削除するhttp://stackoverflow.com/questions/868653/corruption-of-user-config – harlam357

答えて

0
   try 
       { 
        // preloads the settings file and throws an error if the settings file is corrupted 
        Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal); 
       } 
       catch (ConfigurationErrorsException ex) 
       { 
        File.Delete(ex.Filename); 
       } 
+0

の複製であるように見えます。上記のコードスニペットはそれを行います。 – TrustyCoder

+0

user.configファイルが実際に破損している場合以外は、実際には例外がスローされます。たとえば、アプリケーションの別のインスタンスがuser.configにファイルロックを既に持っている場合、user.configが破損していなくてもConfigurationErrorsExceptionがスローされます。削除を続行する前に、内部例外(この例ではIOException)をチェックする必要があります。 – OfficeAddinDev