最近在做一个项目时,需要通过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权限的问题.
当然,我想这个问题肯定还有别的更好的解决办法,毕竟现在这个只是一个临时解决问题的手段,使用起来也不方便..
大家如果有更好的办法,请告诉我呀