由于SecurityException而无法读取事件日志

由于SecurityException而无法读取事件日志,第1张

概述由于SecurityException而无法读取事件日志

我正在为我的webapp写一个dll。 我正在监视一个服务,我有一个网页,显示服务正在运行,停止或其他。 所以我想获得这个服务logging的EventLog的最后10个条目。 但是,当我在做我调用ToArray()时得到一个exception。 我该怎么办?

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

解决了

C#用Process.Start()打开不可用的networkingpath

如何在windows上编码C#但在linux上运行?

以编程方式调用SendTo

在windows启动时启动wpf应用程序

创build一个windows钩子来检测菜单点击

但是,我可以从指定的文件夹读取,这很有趣。 这取决于EventLog类的Log属性。 所以我应该简单地用这个replace一行

var myLog = new EventLog {Source = "MySource",Log = "Application"};

另一个笑话是它有时候起作用。 有时不。 例如,此代码适用于我的服务,但与netprofm服务失败。 tnx帮助大家

如何将HTML和文本都复制到剪贴板?

file.copy()从networking共享到另一个共享在同一台机器上通过networking复制文件?

注册免费的COM DLL要求。NET框架3.5安装时,它在注册时工作正常

如何使用C#代码获取IIS虚拟目录和Web应用程序的物理path?

windows – 用C#命名pipe道性能build议

您需要具有管理员权限才能从事件日志中读取。 你是否以管理员身份运行?

您还可以在注册表中修改对此的权限:

HKEY_LOCAL_MACHInesYstemCurrentControlSetServicesEventlogSecurity

右键单击该条目,选择权限,并确保您有权访问。

您不能跳过安全性文件夹并仅查看应用程序。 从文档 :

要在windows Vista及更高版本或windows server 2003中搜索事件源,您必须具有管理权限。 这个要求的原因是,必须搜索所有的事件日志,包括安全性,以确定事件源是否唯一。 从windows Vista开始,用户无权访问安全日志; 因此,抛出SecurityException。

进一步阅读和另一相关报价:

仅从日志中读取时,不需要指定源。 您只能指定 EventLog实例的日志名称和计算机名称(服务器计算机名称)属性。

总结

以上是内存溢出为你收集整理的由于SecurityException而无法读取事件日志全部内容,希望文章能够帮你解决由于SecurityException而无法读取事件日志所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1280918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存