无法写入事件日志

时间:2017-08-08 19:10:42

标签: c# asp.net vb.net iis

edI拥有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 \服务\事件日志

添加了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

仍然存在错误

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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