我正在为我的 webapp 编写一个小 dll。我正在监控一项服务,我有一个网页显示服务是否正在运行、停止或其他。所以我想获取此服务记录的最后 10 个 EventLog 条目。但是当我这样做时,我在调用时遇到异常ToArray()
。我应该怎么办?
public static IEnumerable<EventLogEntry> GetEventLogs(string serviceName)
{
if (!EventLog.SourceExists(serviceName))
throw new ArgumentException("Service not found", "serviceName");
var myLog = new EventLog { Source = "MySource" };
var entries = myLog.Entries;
return (from EventLogEntry entry in entries
where entry.Source == serviceName
select entry).ToArray();
}
所以EventLog.SourceExists(serviceName)
返回true
,但在失败之后。
遍历Security
文件夹时失败,但我Application
只需要
解决了
但是,我可以从指定的文件夹中读取,这很有趣。这取决于类的Log
属性EventLog
。所以我应该简单地用这个替换一行
var myLog = new EventLog {Source = "MySource", Log = "Application"};
另一个笑话是它有时会起作用。有时不会。例如,此代码适用于我的服务,但netprofm
服务失败。tnx 帮助大家