我正在尝试部署一个.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的引用使我感到困惑,因为我在活动框的注册表项中没有这一点。
帮点忙?
发布于 2009-12-09 15:36:04
即使是模拟,也有可能使用应用程序池标识。有些应用程序是RevertToSelf的,不尊重模仿。
来自sysinternals的进程监视器将是您在此项目中的朋友。它在生产服务器上是免费的和安全的。启动它,并复制情况以获得一个捕获。然后搜索拒绝词,或者搜索CustomSD或Eventlog。应该出现一种模式,它将显示哪个用户试图获得访问权,以及如何授予该用户访问权。
https://serverfault.com/questions/92618
复制相似问题