【问题标题】:ASP.NET application accessing event log on Windows Server 2008 R2ASP.NET 应用程序访问 Windows Server 2008 R2 上的事件日志
【发布时间】:2011-07-01 07:38:19
【问题描述】:

谁能解释为什么会发生以下情况:

我的 ASP.NET 应用程序需要访问应用程序事件日志。

  1. 当我最初访问 Web 应用程序时,它返回“安全”异常(这是预期的,因为我尚未授予写入应用程序事件日志的权限)。

  2. 然后,我向 IIS_IUSRS 组授予对以下注册表项的读/写权限:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog。由于此操作,我的 Web 应用程序开始工作。

  3. 现在我删除了我已授予 IIS_IUSRS 组的权限。但 我的网络应用程序继续工作(尽管我希望再次引发“安全”异常)

那么,为什么 Web 应用程序继续工作,尽管有写入应用程序日志的权限 已被删除?

【问题讨论】:

    标签: asp.net registry event-log windows-server-2008-r2 windows-server


    【解决方案1】:

    在事件日志中创建事件源所需的权限与写入现有事件源所需的权限是不同的。创建事件源需要更高的权限。

    这是source 重新访问事件日志:

    最低权限的帐户有 足够的权限能够 将记录写入事件日志 使用现有的事件源。然而, 他们没有足够的 创建新事件的权限 来源。

    【讨论】:

    • 谢谢,有帮助。我检查了在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application 下为事件日志源创建的注册表项,并删除了由我的 Web 应用程序创建的注册表项。这又带来了异常。
    • 很高兴为您提供帮助。此事件源创建可以在部署时完成,这样 Web 应用程序本身就不必拥有创建事件源所需的权限。在新的 Web 应用程序中,我经常在 Application_Start 中写入事件日志,以便在尚未创建事件源时立即抛出异常。
    【解决方案2】:

    只要不重新启动 ASP.NET 应用程序和/或 IIS,打开事件日志的权限就会被缓存。取决于你在代码中的表现。

    【讨论】:

      猜你喜欢
      • 2010-10-17
      • 1970-01-01
      • 2016-04-11
      • 1970-01-01
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      • 2011-03-16
      • 1970-01-01
      相关资源
      最近更新 更多