簡體   English   中英

控制台應用程序運行失敗時,exe.config文件將被刪除

[英]exe.config file getting deleted when console app is run and fails

我有一個控制台應用程序,它似乎在失敗時已刪除其exe.config文件。 故障記錄為

2018-03-01 00:16:49.4742 - ERROR: System.IO.IOException: The device is not ready.

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileSystemEnumerableIterator`1.CommonInit()
at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)
at System.IO.DirectoryInfo.InternalGetFiles(String searchPattern, SearchOption searchOption)
at System.IO.DirectoryInfo.GetFiles(String searchPattern)
at [my code]...

控制台應用程序正在由調度程序運行,並在大約8分鍾后重新運行,此后它失敗了,沒有任何輸出。 隨后的調查顯示,缺少exe.config。 然后還原丟失的文件將使該應用程序按預期運行。 初始運行是在深夜完成的,重新運行是在調度應用中手動觸發的,因此幾乎沒有人手動刪除文件。 在測試環境中也發生了這種情況。

我找不到在stackoverflow或其他地方刪除的exe.config文件的任何實例,因此希望有人可以幫助我解決這個神秘的問題。

編輯:有關信息,調度系統是Cisco Tidal

編輯2:看來,配置文件的刪除與nlog每月滾動其日志文件相關聯-這是在其他環境中出現故障的一種模式,現在是今天早上在本地

我發現了問題。 確實是NLog。 當文件翻轉時,它意味着刪除我們配置中除最后12個翻轉文件外的所有文件。 但是存在一個錯誤,即它嘗試刪除的錯誤超過此錯誤-包括應用程序exe本身。 幸運的是,這在使用中失敗了。 我將在github上的nlog社區提出一個錯誤

更新:引發錯誤: https : //github.com/NLog/NLog/issues/2607 社區建議該配置不受支持,一種解決方法是拒絕該配置,而不是暴露此意外行為。 希望會得到解決,以避免其他人遇到此問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM