找不到源,但无法搜索部分或全部事件日志.无法访问的日志:安全性

use*_*864 61 c# iis event-log iis-8

我收到错误:

找不到源,但无法搜索部分或全部事件日志.无法访问的日志:安全性

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

EventLog elog = new EventLog();
EventLog.CreateEventSource("MyApp", "Application");
EventLog.WriteEntry(Source, swError.ToString(), EventLogEntryType.Error);
Run Code Online (Sandbox Code Playgroud)

我已经完全访问HKLM\SYSTEM\CurrentControlSet\services\eventlog但它仍然没有工作.我该怎么做才能修好它?

w12*_*128 64

请参阅创建注册表项.

这个问题不仅可能由于权限而发生,而且由于事件源密钥丢失,因为它未成功注册(您需要管理员权限才能执行此操作 - 如果您只是像往常一样打开Visual Studio并正常运行程序它会赢得'够了).确保您的事件源"MyApp"实际已注册,即它出现在注册表中HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application.

MSDN EventLog.CreateEventSource():

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

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

  1. 创建一个regkey HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MyApp;
  2. 在里面,创建一个字符串值EventMessageFile并将其值设置为egC:\Windows\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll

  • 如果您使用的是较新的框架,那么`EventMessageFile`值可能是`C:\ Windows\Microsoft.NET\Framework\v4.0.30319\EventLogMessages.dll` (14认同)
  • 这不是一个正确的解决方案,特别是对于最终用户而言。 (3认同)

Sha*_*rpC 30

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

  • 即使使用VS(作为管理员运行),我也必须添加注册表项. (3认同)

T.S*_*.S. 9

我知道,我参加聚会有点晚了……发生了很多事情,您只在IIS 的应用程序池中使用默认设置。在IIS管理实用程序中,转到app pools->select pool-->advanced settings->Process Model/Identity并选择具有正确权限的用户身份。默认情况下,它设置为ApplicationPoolIdentity。如果您是开发人员,则很可能是计算机的管理员,因此可以选择帐户来运行应用程序池。在部署服务器上,让管理员来处理它。


小智 6

也尝试为 AppPool ID 或网络服务提供适用的访问权限 HKLM\SYSTEM\CurrentControlSet\services\eventlog\security。我遇到了同样的错误..这对我有用。查看错误还表明无法访问的日志是安全日志。

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

我在所有地方都提供了完全访问权限。


Che*_*irl 6

在本地,我以管理员权限运行 Visual Studio,错误消失了。

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

  • 谁说“视觉工作室”?你说!问题没有提到这一点 (3认同)

小智 5

每当您启动Visual Studio时,请以管理员身份运行它。这个对我有用。

  • 谁说“ Visual Studio”?你说!问题没有提及 (3认同)

归档时间:

查看次数:

151221 次

最近记录:

7 年,2 月 前