Это связано с ошибкой в .NET Framework.
В основном, чтобы обойти эту ошибку, нужно установить CurrentCulture на "en-US".
Пример:
var beforeCulture = Thread.CurrentThread.CurrentCulture;
try
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
using (var session = new EventLogSession(ipOrAddress, userDomain, username, password, SessionAuthentication.Default))
{
var query = new EventLogQuery("System", PathType.LogName, queryString)
{
ReverseDirection = true,
Session = session
};
using (var reader = new EventLogReader(query))
{
for (var record = reader.ReadEvent(); record != null; record = reader.ReadEvent())
{
// Read event records
string message = record.FormatDescription();
}
}
}
}
finally
{
Thread.CurrentThread.CurrentCulture = beforeCulture;
}
Этот обходной путь is было очень трудно найти, поэтому я решил документировать его в месте, где он будет проиндексирован Google.Я нашел его в старом MS Connect случае , но он был закрыт со статусом "не исправить".
ОБНОВЛЕНИЕ: Ошибка была сообщается и для .NET 4 , а также имеет статус «Отправлено в инженерную группу для рассмотрения» и комментирует, что ошибка может быть исправлена в следующем основном выпуске .NET Framework (v5).