What do I need to change to allow the IIS7 ASP.Net 3.5 application to create an event source and log events to Windows EventLog


ASP.Net 3.5 running under IIS 7 doesn't seem to allow this out of the box.

        if (!EventLog.SourceExists("MyAppLog"))
            EventLog.CreateEventSource("MyAppLog", "Application");

        EventLog myLog = new EventLog();
        myLog.Source = "MyAppLog";

Best Answer

I've copied this answer from here (the question was Log4Net but the answer still applies). The technet link misses a vital step.

Create a registry key


Create a string value inside this

Name it EventMessageFile, set its value to


That path appears to work in both 64 bit and 32 bit environments.

With this technique you don't need to set permissions in the registry, and once the key above is created it should just work.

If you don't have a large server farm but just a small "web garden" you could run a console application on each server that creates the event log source using EventLog.CreateEventSource, make sure the console application is run by an administrator.