If an ASP.NET application impersonates a user then log4net may fail to write to the event log.
One way around this is to permission the Event Log so that all Authenticated Users can write to it.
This is described here:
http://support.microsoft.com/kb/2028427
and
http://jpadda.wordpress.com/2010/08/08/event-log-write-permissions/
1. Determine
the Primary Domain Controller by executing the following command in an elevated
command prompt:
NETDOM QUERY /D:<mydomain>PDC
2.
Create a VBS script with the following code:
strComputer
= "localhost"
Set
objWMIService = GetObject("winmgmts:\\" & strComputer &
"\root\cimv2")
Set
objAccount = objWMIService.Get _
("Win32_UserAccount.Name='<username>',Domain='<mydomain>'")
Wscript.Echo
objAccount.SID
3.
Run the code in an elevated command prompt and
obtain the user’s SSID:
cscript
<code.vbs>
4. Dump
the existing Application Event Log security to a file
wevtutil gl application >
C:\temp\security.txt
5.
Grant authenticated users Edit the line
containing the channelAccess string, appending the following (A;;0×3;;;AU).
6.
Apply the updated setting, e.g.
wevtutil
sl Application
/ca:O:BAG:SYD:(A;;0xf0007;;;SY)(A;;0×7;;;BA)(A;;0×7;;;SO)(A;;0×3;;;IU)(A;;0×3;;;SU)(A;;0×3;;;S-1-5-3)(A;;0×3;;;S-1-5-33)(A;;0×1;;;S-1-5-32-573)(A;;0×3;;;AU)