C# 事件日志未认证,即使具有管理权限

C# 事件日志未认证,即使具有管理权限,c#,asp.net,windows,events,logging,C#,Asp.net,Windows,Events,Logging,我正在使用以下代码: public static void ErrorRoutine(Exception e, string obj, string method) { //EventLog.Delete("Info3070"); // uncomment this line to delete log EventLog log = new EventLog(); log.Source = "Helpdesk Case1"; log.Log = "Info307

我正在使用以下代码:

public static void ErrorRoutine(Exception e, string obj, string method)
{
    //EventLog.Delete("Info3070");  // uncomment this line to delete log
    EventLog log = new EventLog();
    log.Source = "Helpdesk Case1";
    log.Log = "Info3070";

    if (e.InnerException != null)
    {
        log.WriteEntry("Error in Models, object = " + obj + ", method = " + method + ", inner exception = " +
            e.InnerException.Message, EventLogEntryType.Error);
        throw e.InnerException;
    }
    else
    {
        log.WriteEntry("Error in Models, object = " + obj + ", method = " + method + ", message = " + e.Message,
            EventLogEntryType.Error);
        throw e;
    }
}

它应该在Windows事件查看器的事件日志中记录错误,但即使以管理员身份运行也不会这样做。

您必须首先定义源,我怀疑“Helpdesk Case1”未知。

如果不存在具有指定参数的事件日志,您应该在以下时间之前创建它:

const string sSource = "Helpdesk Case1";
const string sLog = "Info3070";

if (!EventLog.SourceExists(sSource))
    EventLog.CreateEventSource(sSource, sLog);

EventLog log = new EventLog { Source = sSource, Log = sLog };

谢谢你们两位的帮助。我发现了这个问题,令人尴尬的是,这根本不是问题,我自己在事件查看器中查看的文件夹是错误的。不过,您提供了一些关于最佳实践的极好建议。