源未find,但部分或全部事件日志无法search。 无法访问的日志:安全

我收到错误:

源未find,但部分或全部事件日志无法search。 无法访问的日志:安全

当我运行下面的代码来捕获Win 2K12 R2服务器IIS 8.5上的错误

EventLog elog = new EventLog(); EventLog.CreateEventSource("MyApp", "Application"); EventLog.WriteEntry(Source, swError.ToString(), EventLogEntryType.Error); 

我已经完全访问HKLM\SYSTEM\CurrentControlSet\services\eventlog但它仍然不能正常工作。 我该怎么办才能解决这个问题?

请参阅创buildregistry项 。

这个问题不仅是由于权限,而且还由于事件源密钥丢失,因为它没有注册成功(您需要pipe理员权限来做到这一点 – 如果你像往常一样打开Visual Studio并正常运行程序,就够了)。 确保您的事件源“MyApp”实际已注册,即它出现在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application下的registry中。

从MSDN EventLog.CreateEventSource() :

要在Windows Vista及更高版本或Windows Server 2003中创build事件源,您必须具有pipe理权限。

因此,您必须以pipe理员身份运行事件源注册代码(另外,请检查源之前是否已经存在 – 请参阅上面的MSDN示例),或者您可以手动将密钥添加到registry中:

  1. 创build一个regkey HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MyApp ;
  2. 在里面,创build一个string值EventMessageFile ,并将其值设置为例如C:\Windows\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll

运行Visual Studio时出现此错误。 通过以pipe理员身份运行Visual Studio,应用程序能够访问安全日志,因为它具有足够的权限(从而防止出现错误)。

每当你启动visual studio运行它作为administarator.it为我工作。

我最近开始在Visual Studio 2013的内部NLog失败日志中收到这个错误。这个解决scheme已经使用了NLog v2.0.0好几年了。 在上个月,我们的主要日志停止工作。 为了解决这个问题,我通过Nuget将NLog更新到最新版本(v3.1.0)。 安全exception现在消失了,所有的日志消息都再次出现。

此外,我后来发现另一个安全exception,并能够通过在另一个线程中按照这篇文章中的说明修复它。

也可能是因为它可能无法find所需的.dll文件。 文件不在文件夹中或被重命名。 我遇到了同样的问题,发现我的bin文件夹中缺less.dll文件。

尝试给予AppPool ID或networking服务适用的访问HKLM \ SYSTEM \ CurrentControlSet \ services \ eventlog \ security也。 我得到了同样的错误..这对我工作。 看到错误还说,不可访问的日志是安全日志。

我还在eventlog \ application中授予了权限。

我到处都是完全访问。

我知道,我晚了一点晚了…发生了什么事情,你只是在你的应用程序池在IIS中使用默认设置。 在IISpipe理实用程序中,转至app pools->select pool-->advanced settings->Process Model/Identity然后select具有正确权限的用户标识。 默认情况下,它被设置为ApplicationPoolIdentity 。 如果您是开发人员,最有可能在您的计算机上进行pipe理,因此您可以select您的帐户来运行应用程序池。 在部署服务器上,让pipe理员处理它。

在Visual Studio中进行debugging时,将NetworkService用作应用程序池高级设置中的标识值。 如果您直接从浏览器打开站点(或转到IIS中的虚拟目录并使用右侧的浏览选项), ApplicationPoolIdentity正在工作。

本地我运行与pipe理rigths的视觉工作室和错误消失了。

如果在任务计划程序中出现此错误,则必须检查以高权限运行的选项