我试图在Windows中写入事件查看器。但是当我执行WriteEntry()
函数时,我一直遇到异常。它说:cannot open log for 'source' you may not have write access
。据我所知,我是这里的管理员,我正好写入ULS日志,而不是事件查看器。
public MethodLogger(MethodBase methodBase)
{
if (methodBase == null) return;
_methodName = string.Format(CultureInfo.InvariantCulture, "{0}.{1}", methodBase.DeclaringType, methodBase.Name);
LoggingService.LogMessage(string.Format(CultureInfo.InvariantCulture, "Entering {0}", _methodName));
}
public static void LogMessage(string message)
{
SPDiagnosticsCategory category = Current.Areas[_diagnosticName].Categories[LoggingService.Information];
Current.WriteTrace(ServiceId, category, TraceSeverity.Verbose, message);
//Log.Information(message);
}
public void Information(string text)
{
if (!EventLog.SourceExists("Source"))
{
EventLog.CreateEventSource("Source", "Source");
}
EventLog.WriteEntry("Source", text, EventLogEntryType.Information);
}
最后一个WriteEntry是抛出异常的地方。在事件查看器中存在一个名为" Source"所以if语句预先评估为true
,这很好。
为什么我不能写这个事件查看器?