在托管名为my machine的WCF服务的主机(Windows 2008 R2)上写入事件日志时出现异常 来自WCFClient(Windows 7)在域内但在另一台机器上运行。
模拟WCF客户端访问服务器上的资源。
到目前为止,以下链接没有帮助
http://support.microsoft.com/kb/2028427#appliesto
http://forums.asp.net/t/1131903.aspx
http://msdn.microsoft.com/en-us/library/Aa379567(关于SDDL的删除) http://blogs.dirteam.com/blogs/jorge/archive/2008/03/26/parsing-sddl-strings.aspx(SDDL)
关于SO的类似问题,没有任何答案 https://stackoverflow.com/questions/6456444/allow-wcf-services-writing-to-custom-event-log-under-windows-2008-r2-server
例外情况如下
System.ServiceModel.FaultException`1 [System.ServiceModel.ExceptionDetail]:无法打开源“MyService”的日志。您可能没有写入权限。 (Fault Detail等于ExceptionDetail,可能由IncludeExceptionDetailInFaults = true创建,其值为: System.InvalidOperationException:无法打开源“MyService”的日志。您可能没有写入权限。 ----> System.ComponentModel.Win32Exception:访问被拒绝
---内部ExceptionDetail堆栈跟踪结束--- 在System.Diagnostics.EventLogInternal.OpenForWrite(String currentMachineName) at System.Diagnostics.EventLogInternal.InternalWriteEvent(UInt32 eventID,UInt16 category,EventLogEntryType type,String [] strings,Byte [] rawData,String currentMachineName) at System.Diagnostics.EventLogInternal.WriteEntry(String message,EventLogEntryType type,Int32 eventID,Int16 category,Byte [] rawData) 在System.Diagnostics.EventLog.WriteEntry(String message,EventLogEntryType type) ................... .....................
答案 0 :(得分:1)
这是自定义事件日志吗?如果是,请参阅
http://msdn.microsoft.com/en-us/library/49dwckkz(v=vs.80).aspx
- 特别是
通常,在安装应用程序期间创建新的事件源。这允许操作系统有时间刷新其已注册事件源列表及其配置。如果操作系统未刷新其事件源列表并且您尝试使用新源写入事件,则写入操作将失败。如果在安装期间创建源不是一个选项,那么尝试在第一次写入操作之前创建源,可能在应用程序初始化期间。 如果选择此方法,请确保您的初始化代码在计算机上以管理员权限运行。创建新事件源需要这些权利。
答案 1 :(得分:0)
修改了ProcesModel从NetworkService到LocalSystem的AppPool标识,一切正常。
虽然这不是面向公众的网站,并且是一个企业分布式设置,它将在自己的域内运行,但人们仍然可以争论安全风险。
可能的解决方案是
将事件编写代码与Imperosnation
分开或仅提升违规代码的权限。