在事件查看器中写入应用程序日志

4

在收到以下信息三个小时之后:“未找到源,但无法搜索某些或全部事件日志。无法访问的日志:安全。”并尝试了几种解决方案后,我在这里发帖求助。是否有简洁的方法可以从运行在本地主机上的 WebService(asmx)写入事件日志?

我按照 msdn 上的说明添加了 NETWORK SERVICE 并使用 regedit 给它读取权限,如下链接所述:http://social.msdn.microsoft.com/Forums/en-US/windowsgeneraldevelopmentissues/thread/416098a4-4183-4711-a53b-e10966c9801d/

以下是我的 Web 服务内部的代码:

    string sSource = "MyWebService";
    string sLog = "Application";
    string sEvent = "Sample Event";            

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

    EventLog.WriteEntry(sSource, sEvent);
    EventLog.WriteEntry(sSource, sEvent,
        EventLogEntryType.Error, 234);
1个回答

4
您的Web服务运行的Windows帐户(根据配置可能是Network Service或完全不同的内容)需要具有“管理审核和安全日志”的权限才能创建新的事件日志源。您可以在“本地安全策略”>“本地策略”>“用户权限分配”中分配此权利。

嗨,acezanne,我仍然遇到相同的错误:“找不到源,但无法搜索某些或所有事件日志。不可访问的日志:安全”。即使我按照您在上面所述步骤设置了相同的权限。如果我以“管理员身份运行”应用程序,则不会出现任何错误。 - user145610
是的,我曾经成功地使用过这个解决方案多年,但恐怕由于Windows和/或.NET的一些变化,这个解决方案现在已经不起作用了。除了将帐户设置为管理员,我还没有找到Win7/.NET 4的解决方案。 - acezanne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接