用户配置文件损坏问题

3
在我们的桌面应用程序项目中,我们使用设置变量来存储应用程序的用户设置。此外,在每个最新版本的应用程序中,我们都会升级这些变量以保留用户设置。 通常情况下,这很好用,但最近我的一个终端用户报告了一个错误,即“配置系统初始化失败”。错误与"user.config"文件有关。因此,我们请求用户将文件发送给我们。 收到文件夹后,我们注意到它包含3个文件("c3begfjb.newcfg"、"c3begfjb.tmp"和"user.config")。"c3begfjb.tmp"是一个空文件,而"c3begfjb.newcfg"和"user.config"是相同的文件。我们试图打开这些文件,但"user.config"中的数据不是正确的xml格式,而是无法读取的格式化文件。 你们有没有遇到过这种问题或者有任何想法是如何和什么可能创建了这些文件并损坏了"user.config"文件?

2
硬盘出问题很正常。建议用户修理他的机器。 - Hans Passant
2
@Maverick - 我感同身受。我有一个应用程序经常遇到这个问题。通常用户告诉我它发生在重新启动期间,可能是 Windows 更新自动重新启动引起的。这似乎也是 http://stackoverflow.com/questions/868653/corruption-of-user-config 的重复问题。 - harlam357
2个回答

3
                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);
                }

1
如果检测到损坏的设置文件,则删除该文件。上述代码片段可以实现此功能。 - TrustyCoder
1
除非用户配置文件实际上已损坏,否则这将在其他情况下引发异常。例如,如果应用程序的另一个实例已经锁定了user.config文件,则会抛出ConfigurationErrorsException异常,即使user.config没有损坏。在继续删除之前,您应该检查内部异常(在此示例中为IOException)。 - OfficeAddinDev

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接