使用EventLog所产生的问题

昨天在项目中,需要想系统的日志中写入相应的日志信息,比如错误日志,所以便在园里看了看,发现了一篇不错的文章。

http://www.cnblogs.com/nokiaguy/archive/2009/02/26/1398708.html

具体内容不说了,看这个文章就好,作者写的很不错。

那我写这个做什么呢?难道就是为了贴个链接吗?当然不是了,我要说的是后续的种种问题。那可谓十分无语。。。

我需要的是在日志中产生一个新的节点,然后再日志中写入自己的源。如图:

 
 
我的是win7的系统。看起来貌似是没错的,但是当你运行代码的时候你首先会发现,它,它,它。。。报错了。
报的是一个安全的错误。当然,是在web中,如果是类似windows服务的程序,只要把你的登陆名设置为本地用户就没有问题了。
它是为什么呢?你需要打开你的注册表,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog,你会发现,在这个下面有一个HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security,当你去判断是否存在源的时候,将会遍历这个注册表项,但是此时你是没有权限的,所以,报错了。
那么,应该怎么办呢?本人测试了windows2003、win7、windows2008,当你在2003中,需要给eventlog一个权限,就是iis_wpg。当然,我的一个朋友在他的机器上实验的时候,并没有添加这个权限,
但是也成功了,究竟为什么就不得而知了。如果是win7或2008的话,那么需要加一个network service这个权限,应为此时已经没有iis_wpg了。
还有,源的问题,貌似当一个源已经存在以后,再次想创建一个源会出错,这个有待再次确定。
最后说最诡异的问题。我在win7下进行调试时,如果希望在vs中进行调试,那么请你在启动vs时以管理员身份启动。一开始是没有问题的。但是到后来,等我往里面写信息的时候发现怎么也写不进去了。
不报错,就是写入进去信息。当我重新创建一个新的节点新的源的时候,可以写进去,但是使用已有的,写不进去。很无奈。当我重启机器若干次以后,突然又能写进去了,这。。。。无语啊。
原文地址:https://www.cnblogs.com/fengyishou/p/2055122.html