【发布时间】:2018-03-01 11:20:32
【问题描述】:
我有一个控制台应用程序,它似乎在失败时删除了它的 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 每月滚动其日志文件有关 - 这是其他环境中失败的一种模式,现在是今天早上在本地
【问题讨论】:
-
很可能它与您的代码无关,它可能是环境问题,因此我们能否提供帮助值得怀疑。
标签: c# nlog configurationmanager