Я получаю это исключение при попытке чтения из журнала Windows с использованием метода C # EventRecord.FormatDescription()
:
System.Diagnostics.Eventing.Reader.EventLogException: The description string for parameter reference (%1) could not be found
at System.Diagnostics.Eventing.Reader.EventLogException.Throw(Int32 errorCode)
at System.Diagnostics.Eventing.Reader.NativeWrapper.EvtFormatMessageRenderName(EventLogHandle pmHandle, EventLogHandle eventHandle, EvtFormatMessageFlags flag)
at System.Diagnostics.Eventing.Reader.ProviderMetadataCachedInformation.GetFormatDescription(String ProviderName, EventLogHandle eventHandle)
Исключение происходит, когда текст события содержитстрока %%
, за которой следует длинное число (некоторые события из источника, который я не контролирую, содержат этот шаблон).Эти %%
предназначены для того, чтобы быть просто текстом, я не ожидаю, что Windows разберется в этом вопросе.
Знаете ли вы, что я могу сделать, чтобы .Net не выдавал эту ошибку, когда текстсобытие содержит этот шаблон?
Вот команды PowerShell, которые вызовут исключение в следующий раз, когда вы попытаетесь прочитать событие из программы на C #:
New-EventLog -LogName Application -Source MyApp
Write-EventLog -Source MyApp -LogName Application -Message "%%4294967295" -EventId 3