写事件日志时出现System.Security.SecurityException

本文关键字:System Security SecurityException 事件 日志 | 更新日期: 2023-09-27 17:50:45

我的应用程序是c#。NET,它被部署在不同的机器上。我的应用程序的用户有正常的访问权限(没有ADMIN权限)。在一些系统上,我得到system . security . securityexception。上面写着"系统,安全。SecurityException:未找到源,但无法搜索部分或全部事件日志。不可访问的日志:Security"

我做了一些变通:-

    在一台机器上,我用管理员权限启动了我的应用程序,它工作得很好-没有问题。我在HKEY_LOCAL_MACHINE'SYSTEM'CurrentControlSet'Services'Eventlog'Security中添加了用户组。

我不想去每台机器和做以上的工作。我需要任何通用的解决方案,可以在所有机器中应用一次。任何帮助吗?

写几行代码配置文件:-

<add key="E_Source" Value="ABC">

c#代码
Public static readonly string E_Source = ConfigManager.GetString("E_Source");
EventLog.writeEntry(E_Source, logtext, logtype);

Thanks in advance

写事件日志时出现System.Security.SecurityException

为了找到您想要编写的源代码,. net枚举所有事件日志。如果它不存在,. net将最终尝试枚举Security日志,您甚至没有普通用户的读取权限。因此,你得到一个SecurityException。

因此,您必须确保事件日志存在(我敢说,如果不触发异常,您无法做到这一点)。通常,您会将此作为设置/安装的一部分。然后,在写入时,捕获SecurityException并适当地处理它(例如,显示无法写入日志的错误消息)。

如果你以编程方式写入EventLog,你将需要创建一个具有更高权限的事件源,如EventLog类的文档所述:

https://msdn.microsoft.com/en-us/library/system.diagnostics.eventlog%28v=vs.110%29.aspx

相关文章: