【发布时间】:2013-03-22 09:54:31
【问题描述】:
我正在尝试找出为什么我们的一个遗留应用程序每天都会抛出异常。它是一个 VB.Net Windows 服务,它使用 Microsoft.VisualBasic.Logging.FileLogTraceListener 类来进行日志记录。
但是,它会引发以下异常,但我不知道是什么原因造成的:
System.IO.IOException: The handle is invalid.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.get_Length()
at Microsoft.VisualBasic.Logging.FileLogTraceListener.ReferencedStream.get_FileSize()
at Microsoft.VisualBasic.Logging.FileLogTraceListener.ResourcesAvailable(Int64 newEntrySize)
at Microsoft.VisualBasic.Logging.FileLogTraceListener.WriteLine(String message)
目前似乎每天抛出一次,问题是我需要确保所有内容都已记录。在这种情况下,仅捕获并吞下异常和要省略的日志对我来说是不可接受的。
我已尝试调查导致此 Windows 错误消息 (ERROR_INVALID_HANDLE - 0x06) 的可能原因,但我似乎找不到任何具体内容。
任何试图诊断此问题的帮助将不胜感激!
【问题讨论】:
-
您对 FileLogTracerListener 有任何配置设置吗?
-
我应该指出,这在我的开发、测试和 QA 环境中运行良好,并且只会在我的实时环境中导致 Windows 错误(定期)。在这种情况下,我认为配置不是问题。我开始怀疑它可能比.net框架低得多(即windows集群或服务器硬盘上的一些克隆进程)。
-
您是否可以提供任何其他详细信息以便有人复制并可能对您有所帮助?
-
是否有多个进程(甚至 AppDomain)写入同一个文件?