繁体   English   中英

无法写入事件日志

[英]Cannot write to the Event log

ed我拥有C#ASP.NET 4.5 Webform应用程序,并使用以下代码:

 if (!EventLog.SourceExists(sSource)) EventLog.CreateEventSource(sSource, sLog);

     EventLog.WriteEntry(sSource, message, level);

由于第一行失败,因此我在注册表中创建了HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ services \\ eventlog \\ Application \\ IDDISLOG

我在WriteEntry方法上收到以下异常:

 Cannot open log for source 'IDDISLOG'. You may not have write access. 

搜索了其他类似问题,但没有一个对我有用。

到目前为止,这是我所做的:

在项目文件夹中添加了“网络服务”

向中添加了Network service ,并为其提供了完全访问权限。 HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ services \\ eventlog

向其添加了Nertwork服务,并为其提供了完全访问权限。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security

检查并看到w3wp.exe * 32进程以用户名ASP.Net v4.0运行。

因此,将ASP.Net v4.0添加到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog

尽管如此,错误仍然存​​在

您的用户帐户可能没有足够的特权来创建事件源,只有管理员帐户才能这样做。 如果您可以管理员身份登录,请再次运行代码或在此处添加文件夹:HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ services \\ eventlog \\ Application \\ IDDISLOG

那应该允许您的应用程序使用该源写入事件日志。 您可能需要进一步配置实际的注册表项,以满足您的需求。

在IIS(Windows服务器)中,您应该更改应用程序池使用的身份标识,因此新身份具有写入事件日志的权限。 选择应用程序池和高级设置。 然后编辑并插入自定义帐户,althoug本地系统就足够了。 如果使用自定义帐户,请确保不要使用密码将要过期的用户,因为发生这种情况时,登录事件日志将失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM