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

本文介绍了一个在Windows Server 2003环境下使用Web服务写事件日志时遇到的System.Security.SecurityException异常,并提供了一种通过修改注册表设置来规避此问题的方法。

最近在做一个项目时,需要通过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权限的问题.
当然,我想这个问题肯定还有别的更好的解决办法,毕竟现在这个只是一个临时解决问题的手段,使用起来也不方便..
大家如果有更好的办法,请告诉我呀
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值