I am getting error:
The source was not found, but some or all event logs could not be searched. Inaccessible logs: Security
When I run below code to capture errors on Win 2K12 R2 server IIS 8.5
EventLog elog = new EventLog();
EventLog.CreateEventSource("MyApp", "Application");
EventLog.WriteEntry(Source, swError.ToString(), EventLogEntryType.Error);
I've given full access to HKLM\SYSTEM\CurrentControlSet\services\eventlog
but it is not working still. What shall I do to fix it?
This problem can occur not only due to permissions, but also due to event source key missing because it wasn't registered successfully (you need admin privileges to do it - if you just open Visual Studio as usual and run the program normally it won't be enough). Make sure that your event source "MyApp" is actually registered, i.e. that it appears in the registry under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application
.
From MSDN EventLog.CreateEventSource():
To create an event source in Windows Vista and later or Windows Server 2003, you must have administrative privileges.
So you must either run the event source registration code as an admin (also, check if the source already exists before - see the above MSDN example) or you can manually add the key to the registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MyApp
;EventMessageFile
and set its value to e.g. C:\Windows\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll