导出EventLog时出现异常

时间:2012-10-21 15:50:31

标签: c# .net event-log

我使用以下代码导出Windows-Event-Log:

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也有效。

有人知道,可能有什么不对吗?

2 个答案:

答案 0 :(得分:0)

请参阅以下内容中的可能答案: EvtArchiveExportedLog fails with ERROR_DIRECTORY

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

答案 1 :(得分:0)

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

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