源未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中:
- 创build一个regkey
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MyApp
; - 在里面,创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的视觉工作室和错误消失了。
如果在任务计划程序中出现此错误,则必须检查以高权限运行的选项 。