我收到错误:
未找到源,但无法获取部分或全部事件日志
搜索过。无法访问的日志:安全
当我运行下面的代码来捕获 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
但它仍然不起作用。我该怎么做才能修复它?
See 创建注册表项 https://stackoverflow.com/questions/286060/what-do-i-need-to-change-to-alllow-my-iis7-asp-net-3-5-application-to-create-an/7848414#7848414.
出现此问题不仅是由于权限问题,还可能是由于未成功注册而导致事件源密钥丢失(您需要管理员权限才能执行此操作 - 如果您像往常一样打开 Visual Studio 并正常运行程序,则不会出现此问题)还不够)。确保您的事件源“MyApp”确实已注册,即它出现在注册表中的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application
.
From MSDN EventLog.CreateEventSource() http://msdn.microsoft.com/en-us/library/2awhba7a%28v=vs.110%29.aspx:
在 Windows Vista 及更高版本或 Windows Server 中创建事件源
2003年,你必须有管理权限。
因此,您必须以管理员身份运行事件源注册代码(另外,检查源之前是否已存在 - 请参阅上面的 MSDN 示例),或者您可以手动将密钥添加到注册表中:
- 创建一个注册表项
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MyApp
;
- 在里面,创建一个字符串值
EventMessageFile
并将其值设置为例如C:\Windows\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)