1. 程式人生 > >發生 Configuration system failed to initialize 錯誤的一個特例

發生 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 檔案,但是讀取不到任何資料,所以就報錯了。