无法在Windows 2003 Server上打开源{0}的日志

时间:2010-03-19 17:06:18

标签: iis iis-6 event-log eventlog-source custom-eventlog

我的服务器上的事件日志存在很大问题。是的,首先让我解释一下设置。

  • 我有2台计算机的域名设置
  • 一台计算机正在运行IIS,另一台计算机正在运行。 IIS正在运行Win2k3工作站Win XP。
  • IIS计算机正在托管一个使用Windows模拟的网站,并尝试将条目记录到事件日志中,以获取名为 MyApp 的自定义日志文件和自定义事件源 MySource
  • 我有一个名为MyUser的域用户,他只是Domain Users的成员。
  • 单点登录正在100%工作,因为我可以将登录用户写到页面上。

当我从工作站访问IIS页面时,我收到以下消息之一(有时我会得到第一个有时是第二个)

1) The handle is invalid
2) Cannot open log for source 'MySource'. You may not have write access.

所以为了尝试解决这个问题,我尝试了以下所有方法:

将Everyone用户FullControl授予C:\ windows \ system32 \ config \ MyApp.evt文件

将每个用户FullControl授予HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ EventLog

在密钥HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ EventLog \ MyApp \ CustomSD中,我附加了以下字符串(A ;; 0x0002 ;;; AU),(原因可在此处阅读http://fgheysels.blogspot.com/2008/01/cannot-open-log-for-source-0-on-windows.html

我现在完全不知道如何解决这个问题。有没有其他人遇到这个,你有没有尝试过其他任何事情。

2 个答案:

答案 0 :(得分:0)

您似乎已经发现的错误与写入事件源或创建它们有关。我建议你试试以下内容。

您没有说明事件源是否存在于注册表中,或者是否存在由系统创建的.evt文件,或者您是否将它们放在计算机上,因此很难确定您被卡住的位置。

您也没有提及这是否适用于某些开发人员的计算机,在这种情况下,您可以比较注册表,甚至可以手动创建密钥。

  1. 如果已创建日志密钥(MyApp?),请查看... \ Eventlog。
  2. 查看HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ EventLog \ MyApp。 应该有一个名为Sources的密钥。你的来源是否出现在这里?
  3. 如果这些条目不存在,则错误是您的用户无权创建自定义日志和来源。

    在错误消息中,它应指示一个ThreadIdentity参数,该参数应指示它尝试使用哪个用户帐户来执行此操作。您还可以打开HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ EventLog的权限,并查询此特定用户的“有效权限”,以确保它实际上具有完全控制权。

    尝试授予对整个目录C:\ windows \ system32 \ config \的完全控制权,而不仅仅是.evt文件,因为系统还需要在此处创建一些其他文件。

    最后,您可以尝试启用对网站的匿名访问,并将其作为计算机/域管理员用户运行一次,以便在将其设置回您喜欢的方式之前创建所有密钥。您还可以尝试在web.config文件中启用模拟,以确保它在没有Windows标识的情况下不运行。一旦创建了正确的密钥和文件,您应该能够撤消这些文件。

    告诉我们您在此之后发现的内容,我们可以进一步了解。

答案 1 :(得分:0)

经过多次试图解决这个问题之后,我似乎找到了一个有效的解决方案。

首先,我必须允许Authenticated Users组对事件日志进行写访问。我建议你在继续之前备份你的注册表。

  1. 运行regedit
  2. 浏览HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Eventlog
  3. 打开与您正在写入的EventLog相匹配的子项(因此我将选择应用程序
  4. 在右侧,您将看到注册表字符串,找到一个名为 CustomSD
  5. 的字符串
  6. 右键单击并修改它。
  7. 追加到末尾(A ;; 0x2 ;;; AU)(我稍后会解释)
  8. 保存更改(我不知道您是否需要重启)
  9. 这意味着Authenticated Users可以写入Application事件日志。我需要再申请一次。

    1. 打开域GPO或本地计算机GPO
    2. 导航至计算机配置> Windows设置>安全设置>地方政策>用户权利>作业>管理审计和安全日志
    3. 转到“属性”窗口
    4. 选择定义这些策略设置
    5. 添加管理员组
    6. 添加Authenticated Users组
    7. 保存并为受影响的计算机执行gpupdate / force。
    8. 这是我允许网站用户写入事件日志的唯一方法。

      我在第1部分第6步中提到过,我会解释我们添加的字符串。有关详细信息,请参阅此页面http://support.microsoft.com/kb/323076