我的user.config设置文件如何被破坏?
问题描述:
我有一个用户给我的崩溃报告从调用Settings.Upgrade()
:我的user.config设置文件如何被破坏?
System.Configuration.ConfigurationErrorsException: Root element is missing.
我让他给我他的user.config文件,该文件是全零。不知怎的,它已经腐败了。
我找到了一种通过在%localappdata%\ MyAppName目录中生根并删除所有用户配置文件并重新启动应用程序来从中恢复的方法。如果我让应用继续执行,则会进一步提供ConfigurationErrorsException
s。
这种腐败可能是我做过的事情的结果吗?我有几千个用户的基础上有多个报告,但我没有直接搞乱那个文件。有没有其他人遇到这个user.config损坏?
答
如果运行应用程序的多个实例,设置似乎会损坏。 这似乎是一个计时问题,但一个相对简单的重现方法是让应用程序自行启动然后退出,并尝试在退出时保存设置。
我认为一切都只是在常规的.NET 4.至于第二篇文章,获取违规文件的确切路径是一个很好的技巧,用于单击损坏的文件而不是批量删除。我会改变我的处理,而不是使用它。 – RandomEngy
我在几千个已安装的应用程序上遇到过4次相同的问题。这发生在电源故障期间。删除文件会使应用程序正常工作,但您将失去用户的设置。道德:不要使用微软的设置,或者更好的做法是改用webapps。 –
后续工作:我现在正在使用SQLite存储设置,这对于这种损坏具有适应性。我没有像这样的问题。 – RandomEngy