5

我使用以下代码导出 Windows 事件日志:

var els = new EventLogSession();
els.ExportLogAndMessages("Application", 
                            PathType.LogName, 
                            "*[System[Provider[@Name='Prayon.Client']]]", 
                            tempEventLogPath, 
                            false, 
                            CultureInfo.CurrentCulture);

这通常是有效的。但是在一台机器上,我得到了休闲异常:

System.Diagnostics.Eventing.Reader.EventLogException: Der Verzeichnisname ist ungültig
bei System.Diagnostics.Eventing.Reader.EventLogException.Throw(Int32 errorCode)
bei System.Diagnostics.Eventing.Reader.NativeWrapper.EvtArchiveExportedLog(EventLogHandle session, String logFilePath, Int32 locale, Int32 flags)
bei System.Diagnostics.Eventing.Reader.EventLogSession.ExportLogAndMessages(String path, PathType pathType, String query, String targetFilePath, Boolean tolerateQueryErrors, CultureInfo targetCultureInfo)

"Der Verzeichnisname ist ungültig"英文的意思:"The pathname is invalid"

Application-EventLog 是存在的并且tempEventLogPath也是有效的。

有人知道,有什么问题吗?

4

2 回答 2

0

请参阅中的可能答案: EvtArchiveExportedLog 失败并出现 ERROR_DIRECTORY

问题是,即使您有权访问答案中提到的目录,您也可能因 UAC 通知而失败(您可以禁用 UAC,它应该可以工作)。

于 2013-05-08T17:23:13.020 回答
0

尝试删除目标目录中的 LocalMetaData 目录。

我有同样的问题。第一次调用有效,但随后的每个调用都会出现上述异常。使用 Processmonitor 进行的调查显示,除了 evtx 文件之外,还访问了 LocalMetaData 目录。删除此目录后,导出再次起作用。

于 2013-07-24T14:01:33.517 回答