配置文件初始化異常Configuration system failed to initialize


最近用戶反映一些電腦啟動程序就崩潰,還給演示了一個比較詭異的問題

“把軟件重新拷貝到另外一個目錄,就能正常運行"。還說過一段時間又不能運行需要在換個位置。

’由於當時沒有設置全局異常,只能借助系統操作日志來分析, 系統日志記錄不全,就說發生一個異常程序掛掉。

就簡單加上全局異常捕獲。 

public class ExceptionHelper
    {
        public static void InitException()
        {
            Application.Current.DispatcherUnhandledException += Application_DispatcherUnhandledException;
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
        }

        private static void Application_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
        {
            LogManager.WriteException(e.Exception);
            e.Handled = true;
        }

        private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            var exception = e.ExceptionObject as Exception;
            if (exception != null)
            {                
                LogManager.WriteException(exception);
            }
        }
    }

加入日志詳細信息后,看到提示 Configuration system failed to initialize錯誤信息。然后借助搜索,找到一篇文章

了解到原因兩種:

一、config 文件中 <configSections> 的位置順序有關或者內容格式錯誤。

二、包含了User作用域的配置項的時候,user.config文件損壞了。

 

結合自己的程序確實用道<configSections>這個節點,用來保存程序在屏幕的位置,該節點已經在最上面,檢測內容格式也是正常。

那就剩下第二種可能了,找位置:C:\Users\Administrator\AppData\Local\SuspendWpfApp,刪除里面的文件即可

 Administrator:用戶名, SuspendWpfApp:軟件名。

為了徹底解決這個問題,不在使用 Properties.Settings.Default來保存信息,自己用文件來保存上次信息。

因為一旦userSettings出現問題,軟件中依賴appSettings節點的信息將都獲取不到。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM