2

我想写入默认的应用程序事件日志,而不是自动创建事件日志源或通过EventLog.CreateEventSource. 该程序可能以非管理员身份运行,他们无法创建事件日志源。此应用程序没有安装程序。在这种情况下,我可以为“始终有效”的源指定一些东西吗?

作为参考,错误消息是:

System.Security.SecurityException: The source was not found, but some or all event logs could not be searched.  To create the source, you need permission to read all event logs to make sure that the new source name is unique.  Inaccessible logs: Security.
4

1 回答 1

4

不注册事件源就无法编写,并且需要管理权限才能创建事件源。如果您有管理权限并且在没有先创建源的情况下写入日志,Windows 会自动创建事件源。

来自 MSDN:

使用 WriteEvent 和 WriteEntry 将事件写入事件日志。必须指定事件源才能写入事件;在使用源编写第一个条目之前,您必须创建和配置事件源。

在安装应用程序期间创建新的事件源。这允许操作系统有时间刷新其已注册事件源及其配置的列表。如果操作系统尚未刷新其事件源列表,并且您尝试使用新源写入事件,则写入操作将失败。您可以使用 EventLogInstaller 或使用 CreateEventSource 方法配置新源。您必须拥有计算机的管理权限才能创建新的事件源。

EventLog.Source 属性

于 2013-03-07T21:57:45.133 回答