在asp.net 中,我想把一条信息写到windwos日志中,.net  Log给提供了一个方法!
Log.Write()
使用报错!
说明: 应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请与系统管理员联系,或在配置文件中更改该应用程序的信任级别。 异常详细信息: System.Security.SecurityException: 不允许所请求的注册表访问权。源错误: 
行 68:  private static void LogEvent(string eventLogSource, string message, EventLogEntryType eventLogEntryType)
行 69:  {
行 70:  EventLog.WriteEntry(eventLogSource, message, eventLogEntryType);
行 71:  }
行 72:  }
研究了一天未果

解决方案 »

  1.   

    EventLog eventLog = new EventLog("Application", "EVENTLOG_MACHINENAME_DEFAULT", "EVENTLOG_SOURCENAME_DEFAULT");
                        //Write the entry to the event log
    eventLog.WriteEntry(messageText, LogEntryType);从Duwamish示例里的这几句来看,  WriteEntry并不是静态方法,注意实例化EventLog类后面那两个参数,
    不过也许也不是这里的问题,建议参考MSDN或,装上Duwamish,参考SystemFramework项目里的ApplicationLog类
    会有你的答案.
      

  2.   

    <identity impersonate="true" />在web.config中加这么一句......
      

  3.   

    System.Security.SecurityException: 不允许所请求的注册表访问权。
    可以通过把IWAM_XXXXXXX用户添加到管理员组或赋予其相应权限来解决。(如果是2003操作系统要增加WPG_IIS用户相应权限)
      

  4.   

    这个问题我也研究很久很久,得出如下结论:
    如果直接写日志到Application或者系统默认的已经存在的日志项,是没有问题的。
    如果自己把建一个日志项,再注册一个事件源,默认是不行的!必须要把ASPNET帐号加入administraotrs组(system组应该也可以,我没试),重启IIS或电脑生效.这样做太.......所以我放弃了.
    如果建一个C#(VB.NET)应用程序,注册一个事件源到一个新的日志项里,程序会在系统里建一个你指定的日志项,并注册你指定的事件源.运行的话,没有任何错误!所以归根结底,还是权限的问题!
    所以呢,我就没有把日志记到系统日志里了,改为发邮件或者记到一个自定义格式的文本文件或XML文件里.
      

  5.   

    http://community.csdn.net/Expert/topic/3636/3636720.xml?temp=.7869074看看saucer(思归)大哥的回复吧,我一直没有怎么弄懂.你懂了不要忘了告诉我喔....