2012-10-21 6 views
5

io uso il codice di vuoto sanitario per esportare un Windows-EventLog:Eccezione alla esportazione EventLog

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

Questo è generalmente funziona. Ma su una macchina, ottengo l'eccezione maggese:

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" significa in inglese: "The pathname is invalid"

L'Application-EventLog è esistente e tempEventLogPath è anche valido.

Qualcuno sa, cosa può esserci di sbagliato?

+0

Qual è il valore di tempEventLogPath? –

risposta

0

Provare a eliminare la directory LocalMetaData nella directory di destinazione.

Ho avuto lo stesso problema. La prima chiamata funziona, ma ogni chiamata successiva ottiene l'eccezione sopra menzionata. La ricerca con Processmonitor mi ha mostrato che oltre al file evtx la directory LocalMetaData è accessibile. Dopo aver eliminato questa directory, l'esportazione funziona di nuovo.

0

Vedere la risposta possibile in: EvtArchiveExportedLog fails with ERROR_DIRECTORY

Il fatto è che, anche se si ha accesso alla directory che è menzionato nella risposta, si può fallire a causa di notifiche UAC (è possibile disattivare UAC e dovrebbe lavoro).