發生 Configuration system failed to initialize 錯誤的一個特例

一般情況下,.net 程序啓動時發生 Configuration system failed to initialize 錯誤, 大都與 config 文件中 <configSections> 的位置順序有關或者內容格式錯誤,這種情況調試就能遇到並解決。如果是運行時手動修改不小心搞壞了config 文件,從能正常運行的程序文件夾下複製對應的 config 文件也可以解決。

最近遇到了一個特例:

用戶稱前一天還能運行的程序,第二天死活啓動不了了,報錯信息就是 Configuration system failed to initialize。反覆確認用戶沒有手動修改過 config 文件,而且從別的能正常啓動程序的機器上覆制過來了 config 文件也不能解決問題。在來回檢查 config 文件內容時,突然看見有 <userSettings>,這部分數據在程序啓動後,是保存在 C:\Users\當前用戶\AppData\Local 下的程序集名稱文件夾中的,按圖索驥找到這個應用程序對應的 user.config,發現文件大小居然是 0 KB,於是直接刪除掉這個文件再重新啓動應用程序,問題解決。

事後向用戶瞭解,原來前一天在應用程序運行時發生突然斷電關機的情況,懷疑正好應用程序在自動保存 settings,斷電導致文件寫入失敗。等到第二天啓動時,應用程序找到有這個 user.config 文件,但是讀取不到任何數據,所以就報錯了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章