2009-08-11 25 views
4

我与一些旧代码工作(坦白地说,我不知道一半是做什么的),试图其移动到IIS7。问题在访问/写入到EventLog

一个我看到的问题是,我得到这个错误:

[抛出:SecurityException:源未找到,但一些或所有事件日志不能被搜索到。不可访问的日志:安全。]

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

任何人都知道更好的方法来消除此异常?解决这个问题

回答

4

一种方法是运行在完全信任写入违规源名称在一个单一的事件日志条目的简单的控制台应用程序。您必须为每个服务器执行一次

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

问题是:你知道源名吗?如果你不这样做,暂时授予每个人的访问权限,等待日志消息,并删除每个人也应该工作。

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

+0

两个问题: 1)给予进入每个人的时候我没有看到日志信息。这很奇怪。 2)如何从安装程序注册事件日志源(或针对该问题的自定义VB脚本)? – encee 2009-08-11 17:55:02

+0

像Rob Elliott说的'EventLog.CreateEventSource()'。这可能就是ASP.NET在开始记录之前自己正在做的事情。 – Ruben 2009-08-11 18:25:04

+0

我试图使一个VBScript,这是否: 进口系统 进口System.Diagnostics程序 EventLog.CreateEventSource“AppSource”,“应用程序” ,但我得到一个错误说: 类型不匹配:“进口” 什么在世界上这是否意味着? – encee 2009-08-11 18:33:58

1

this螺纹:还提供

EventLog.CreateEventSource() method attempts to search Event Sources under all event logs, not just the event log for which you want to create the source. There are two solutions to this. The first, easiest, and most insecure, is just to give read/write access to all event logs for the ASP.NET account.

代码和其他解决方案。