使用自定义应用程序池帐户从ASP.NET写入Windows事件日志

时间:2010-01-08 19:03:54

标签: c# asp.net

我正在尝试从ASP.net写入Windows事件日志。应用程序池在域帐户而不是网络服务下运行。

我的开发环境一切正常,但有一个问题。由于应用程序池作为域帐户运行,因此我必须将(A;;0x0002;;;AU)添加到Application\CustomSD注册表项,以允许Authenticated Users访问事件日志。这在我的开发盒上很好,但在生产服务器上有效。 (没有注册表调整,他们说。找另一种方式。)

根据我的了解,Windows Server 2k3 SP2上的默认事件日志仅允许在用户会话中设置LOGON32_LOGON_INTERACTIVELOGON32_LOGON_BATCHLOGON32_LOGON_SERVICE标记的登录。< / p>

有没有办法在应用程序池的登录名中添加其中一个标志? IIS在启动应用程序池时不设置标志。我已经看过使用LogonUser创建一个带有正确标志的临时安全上下文,但这需要在某处存储密码,如果可能的话我想避免使用它。

关于如何允许IIS使用自定义应用程序池帐户写入事件日志而不修改Windows Server 2k3 SP2上的注册表的任何想法?

编辑:由于安全限制,我无法将应用池帐户添加到本地管理员组。

资源
Using programmatic Impersonation from an ASP.NET Page
Allowing impersonated accounts to write to your custom event log

1 个答案:

答案 0 :(得分:2)

如果在第一次写入尝试之前只创建/注册了事件源,则该帐户应该能够写入事件日志。创建源需要管理权限,但写入不需要。

正如EventLog类的documentation page所示,应在安装应用程序期间创建和配置事件源。