c# - 使用 C# 在 Windows Server 2003 上查询 EventLog

标签 c# .net windows-server-2003 event-log

我现在正在构建一个 Windows 事件日志查看器,我们有很多 Window Server 2003 机器。我正在使用 EventLogReader 类进行查询,但它需要 Vista+,因此不能在 Windows Server 2003 上运行。虽然 EventLog 类可用但速度很慢。我还有其他选择吗?

更新:我不是在查询所有事件日志,而是在一个日期范围内查询事件日志,如果我们只需要一个范围内的事件日志,有没有办法让它更快?现在使用 EventLog 类即使对于本地框也非常慢,对于远程框来说无法忍受。

最佳答案

EventLog 类很慢。访问速度取决于事件日志的大小。在大多数服务器场景中,允许它们在归档之前变得非常大。 native Windows 事件查看器还支持远程日志查看,这使您可以演示远程日志查看有多慢。

我认为 EventLog 的 Entries 属性很可能是按日期排序的。这意味着您可以实现条目的二进制搜索(默认情况下 Linq 不会这样做)以加快速度。这是二进制搜索扩展的示例:Can LINQ use binary search when the collection is ordered?

关于c# - 使用 C# 在 Windows Server 2003 上查询 EventLog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14151718/

相关文章:

c# - Parallel.For() 与 Interlocked.CompareExchange() : poorer performance and slightly different results to serial version

c# - ASP vNext 和 PostgreSql

c# - 将 C# 参数传递给 Powershell 脚本 - 无法验证参数 'Identity' 上的参数

.net - 环境变量不起作用(Windows 11)

c# - 无锁多线程适合真正的线程专家

java - Windows Server 2003 上的奇怪 Java Swing UI NullPointerException

c# - Webdriver 无法单击带有证书错误页面的弹出窗口

c# - .NET 2.0 : Invoking Methods Using Reflection And Generics Causes Exception

Javascript - 远程访问node.js应用程序

windows - 默认 Unicode 字体在 Windows Server 2003 中可用吗?