【问题标题】:Two web applications, one error when writing to the eventlog两个 Web 应用程序,写入事件日志时出现一个错误
【发布时间】:2016-10-11 16:23:05
【问题描述】:

我有两个 ASP.NET Web 应用程序,在这两个应用程序中我都使用带有自定义源名称的 EventLog.WriteEntry 将自定义事件写入应用程序日志。

在我的编程机器和网络服务器上,这在其中一个应用程序中有效,在另一个应用程序中无效 - 我遇到安全异常:

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

我想知道为什么会发生这种情况,两个 Web 应用程序都是相同的(据我所知)。从安全的角度来看,唯一的区别是身份验证模式:一种使用 Forms(在 Eventlog.WriteEntry 中有效),另一种使用 Windows(在此无效)。会是这个原因吗?

授予“每个人”对应用程序日志的读取权限不会改变这种行为。

【问题讨论】:

  • 这两个 Web 应用程序是否在同一个应用程序池下运行?如果不是,那么两个应用程序池帐户是否对机器/日志具有相同级别的访问权限?
  • 是的,两者都使用同一个应用程序池,这让我很困惑。它适用于一个人的原因是,我选择了一个现有的源名称 - 请参阅下面的评论...

标签: asp.net vb.net event-log


【解决方案1】:

您在Windows身份验证模式上的问题与这些问题基本相似:

System.Security.SecurityException when writing to Event Log

System.Security.SecurityException: The source was not found, but some or all event logs could not be searched. Inaccessible logs: Security.

异常意味着您的网络应用程序尝试使用赋予“源”的值写入事件日志,但由于相应帐户的权限不足,该值尚未注册。

使用 Windows 身份验证模式执行事件日志任务时,您需要在 eventlog\Security 密钥上授予对 NETWORK SERVICE 帐户的读取权限。以下是要执行的步骤:

  1. 打开 Regedit(注册表编辑器)。
  2. 转到HKLM\SYSTEM\CurrentControlSet\services\eventlog\Security
  3. 右键单击分支,选择“权限”。
  4. 点击“添加”,找到名为NETWORK SERVICE的RDN或直接输入,然后添加账号。
  5. 在“网络服务权限”下,选中“读取”或“完全控制”以授予读取权限,然后应用更改。
  6. 重新启动 IIS 主机上的应用程序池。

如果还不够,请执行以下操作:

  1. 打开 IIS 管理器。检查Application Pools 部分的身份列,它应该给出LocalSystemNetworkService

  2. 当您需要更改身份时,右键单击具有 Windows 身份验证的应用程序池,选择高级设置。

  3. 在进程模型下,将ApplicationPoolIdentity 更改为LocalSystemNetworkService,应用您的编辑并重新启动应用程序池。

注意:由于安全漏洞原因,NetworkService 身份比LocalSystem 更受欢迎。

您也可以尝试在web.config 文件中设置<trust level="Full" />,具体取决于安全考虑。

如果上述所有解决方案仍然不起作用,请将开发机器上的 Visual Studio 或 Web 服务器上部署的应用程序设置为以管理员权限运行,从而获得对 Windows 身份验证事件日志的完全访问权限。毕竟,确保应用适当的安全措施取决于您的选择。

【讨论】:

  • 大声笑,我刚刚意识到我不小心为我的自定义源选择了一个现有的源名称。这就是为什么它适用于一个应用程序而不适用于另一个应用程序的原因。最后,我只是在 HKLM\SYSTEM\CurrentControlSet\services\eventlog\Application 下创建了两个自定义源名称作为子键,它可以在不更改应用程序池标识或注册表项权限的情况下工作。不过感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2011-08-13
  • 2014-11-01
  • 2010-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-20
  • 1970-01-01
相关资源
最近更新 更多