0

我正在尝试编写一个简单的事件日志,但遇到“System.Security.SecurityException:找不到源...”,我搜索了很多但找不到有效的解决方案,如果有人我真的很感激帮助我,我知道需要创建源并且必须注册密钥,但是密钥是什么,我应该怎么做?

String source =“DemoTestApplication”;
String log = “DemoEventLog”;
EventLog demolog=new EventLog(log);
EventLog demolog=new EventLog(log);
demolog.Source=source;
demolog.writeEntry(“This is the first message to the log”,EventLogEntryType.Information);
4

1 回答 1

0

尝试这个:

public static void LogEvent(string logBuffer, EventLogEntryType eventLogEntryType)
{
    const string source = "DemoTestApplication";

    // The user may not have permissions to access any event logs, therefore catch any SecurityExceptions.
    try
    {
        if (!EventLog.SourceExists(source))
        {
            // This requires administrator privileges.
            EventLog.CreateEventSource(source, "Application");
        }
        using (EventLog eventLog = new EventLog())
        {
            eventLog.Source = source;
            eventLog.WriteEntry(logBuffer, eventLogEntryType);
        }
    }
    catch (System.Security.SecurityException ex)
    {
        // Source was not found, but some or all of the event logs could not be searched.
        // May occur e.g., when trying to search Security event log.
        // EventLog.CreateEventSource requires permission to read all event logs to make sure 
        // that the new source name is unique.
        Debug.WriteLine(logBuffer);
        Debug.WriteLine(ex.ToString());
    }
}

通常最好在以管理员/提升权限运行时创建事件日志源,例如在安装软件期间。

于 2018-08-09T08:29:35.977 回答