System.Security.SecurityException: 不允许所请求的注册表访问权 一个简单的解决办法

来源:互联网 发布:房子装修预算软件 编辑:程序博客网 时间:2024/05/17 07:43

最近在做一个项目时,需要通过web服务来写事件日志,代码 如下 

 
///<summary>
    ///写事件日志
    ///</summary>
    ///<param name="message"></param>
    private void WriteEventLog(string message)
    {
        string sourceName = "EnterpriseManager" ;
        if (!EventLog.SourceExists(sourceName))
        {
            EventLog.CreateEventSource(sourceName , "EnterpriseManagerEventLog");
        }
 
        EventLog log = new EventLog();
        log.Source = sourceName;
        log.WriteEntry(message);
    }//end method
在执行这段代码时遇到了一个异常,就是System.Security.SecurityException: 不允许所请求的注册表访问权.而且这个异常只在windws server 2003中存在,在XP中就没有.在找了很多方法都无效的情况下,通过如下的方式解决:
在HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Application/下建立一个新键EnterpriseManager
这样,就避免了注册表操作,也就避免了ASPNET权限的问题.
当然,我想这个问题肯定还有别的更好的解决办法,毕竟现在这个只是一个临时解决问题的手段,使用起来也不方便..
大家如果有更好的办法,请告诉我呀
原创粉丝点击