从 iis7 web 应用程序写入事件日志失败

从 iis7 web 应用程序写入事件日志失败

我正在尝试部署一个 .NET Web 应用程序,其安全性是通过模拟来实现的。

在我的开发箱(Win 2003 IIS6)上写入事件日志工作正常,但在将应用程序放到实时箱(Win 2008 IIS7)上后,我得到了以下信息;

Access is denied [Win32Exception (0x80004005): Access is denied] [InvalidOperationException: Cannot open log for source 'MyApp'. You may not have write access.]
System.Diagnostics.EventLog.OpenForWrite(String currentMachineName) +1815151
System.Diagnostics.EventLog.InternalWriteEvent(UInt32 eventID, UInt16 category, EventLogEntryType type, String[] strings, Byte[] rawData, String currentMachineName) +452
System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData) +463
System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type) +30

我在谷歌上找到的最好的帮助是; http://support.microsoft.com/default.aspx?scid=kb;en-us;323076 |http://msdn.microsoft.com/en-us/library/aa379570%28VS.85%29.aspx

对 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Eventlog\Application\CustomSD 的引用让我感到困惑,因为我在实时框中的注册表项中没有这个项。

有点帮助?​​?

答案1

即使使用模拟,您的应用程序池身份也可能被使用。某些应用程序 RevertToSelf 并且不接受模拟。

进程监视器系统内部将成为您在这个项目上的朋友。它在生产服务器上是免费的,而且安全。启动它并重现情况以获取捕获。然后搜索单词拒绝,或搜索 CustomSD 或 Eventlog。应该会出现一个模式,显示哪个用户正在尝试获得访问权限以及如何授予该用户访问权限。

相关内容