访问/写入EventLog时出现问题

时间:2009-08-11 17:44:04

标签: c# asp.net exception event-log

我正在使用一些旧代码(坦率地说,我不知道它的一半)试图将其移至IIS7。

我看到的一个问题是我收到了这个错误:

[SecurityException:找不到源,但无法搜索部分或全部事件日志。无法访问的日志:安全。]

如果我手动转到HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ EventLog \ Security并设置该密钥的(安全)权限,让“Everyone”拥有完全访问权限,这就没问题了。但显然这不是最佳解决方案。

有人知道删除此例外的更好方法吗?

2 个答案:

答案 0 :(得分:4)

解决此问题的一种方法是在完全信任下运行一个简单的控制台应用程序,该应用程序在违规源名称下写入单个EventLog条目。您必须为每台服务器执行一次

从那一刻起,您应该能够在该源名称下登录。 (至少这是我的观察。)它只是创建一个你无法在ASP.NET下做的未知来源,记录到现有的源应该不是问题。

问题是:你知道来源名称吗?如果不这样做,请暂时授予对Everyone的访问权限,等待日志消息,并删除Everyone也应该有效。

Microsoft的官方方式是创建一个注册事件日志源的安装程序。

答案 1 :(得分:1)

来自this主题:

  

EventLog.CreateEventSource()方法   尝试搜索下的事件源   所有事件日志,而不仅仅是事件日志   你要为它创建的   资源。有两种解决方案   这个。第一,最简单,最多   不安全,只是给予读/写   访问所有事件日志   ASP.NET帐户。

还提供了代码和其他解决方案。