C# 问题读取系统事件错误C

C# 问题读取系统事件错误C,c#,C#,下面的代码在Win7机器上运行正常,但当我在Win10上运行它时,它只显示前3个错误并停止 string machine = "."; var aLog = new EventLog("system", machine); List <EventLogEntry> entries = (from entry in aLog.Entries.Cast<EventLogEntry>()

下面的代码在Win7机器上运行正常,但当我在Win10上运行它时,它只显示前3个错误并停止

    string machine = ".";
    var aLog = new EventLog("system", machine);

    List <EventLogEntry> entries = (from entry in aLog.Entries.Cast<EventLogEntry>()
                                   where entry.TimeWritten >= DateTime.Today &&
                                         entry.EntryType == EventLogEntryType.Error
                                   orderby entry.TimeWritten descending
                                   select entry).ToList();

    Console.WriteLine("COUNT= " +entries.Count); //This is 3 but there is 10 system errors
    foreach(var entry in entries)
    {
        Console.WriteLine(entry.Source);
        Console.WriteLine(entry.Message);
        Console.WriteLine();
    }

代码完全按照您的要求执行,检索日期大于或开始于今天开始的所有内容。屏幕截图中的过滤视图是过去24小时内发生的所有事情,这是不一样的

如果要使用该视图,请更改where子句

var twentyFourHoursAgo = DateTime.Now.AddHours(-24); // not sure if this should be UTC or local, change to UtcNow if applicable

List <EventLogEntry> entries = (from entry in aLog.Entries.Cast<EventLogEntry>()
       where entry.TimeWritten >= twentyFourHoursAgo &&
             entry.EntryType == EventLogEntryType.Error
       orderby entry.TimeWritten descending
       select entry).ToList();

您的屏幕截图仅显示9月26日发生的3个条目。是否可能其他条目只是被entry.TimeWrite>=DateTime.Today过滤掉?您可能希望改用timewrited>=DateTime.Now.AddHours-24。