When you use ASP.NET to create a new event source in the event log, you may receive the following error message:
System.Security.SecurityException: Requested registry access is
By default, the user token of the ASP.NET worker process is
ASPNET (or NetworkService
for applications that run on Internet Information Services [IIS] 6.0). The problem in the
"Symptoms" section occurs because your account does not have the correct user
rights to create an event source.
This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
How to back up and restore the registry in Windows
To resolve this problem, a user who has administrative
rights must create the event source before you run the ASP.NET Web Application.
To create an event source, use one of the following approaches.
Create an event source under the Application
event log in Registry Editor. To do this, follow these steps:
- Click Start, and then click
- In the Open text box, type
- Locate the following registry subkey:
- Right-click the Application subkey, point
to New, and then click Key.
- Type TEST for the key
- Close Registry Editor.
class in the System.Diagnostics namespace permits you to install
and configure an event log that your application reads from or writes to while
running. You can create an event source by using EventLogInstaller. To do this,
follow these steps:
- Use Microsoft Visual Basic .NET or Microsoft Visual C# .NET
to create a new Class Library named EventLogSourceInstaller.
By default, the Class1.vb file or the
Class1.cs file is created.
- In Solution Explorer, right-click
EventLogSourceInstaller, and then click Add
- In the Add Reference dialog box,
double-click System.Configuration.Install.dll, and then click
- Rename the Class1.vb\Class1.cs to
- Replace the existing code in MyEventLogInstaller.vb or
MyEventLogInstaller.cs with the following sample code:
Visual C# .NET Sample
Public Class MyEventLogInstaller
Private myEventLogInstaller As EventLogInstaller
Public Sub New()
' Create an instance of 'EventLogInstaller'.
myEventLogInstaller = New EventLogInstaller()
' Set the 'Source' of the event log, to be created.
myEventLogInstaller.Source = "TEST"
' Set the 'Log' that the source is created in.
myEventLogInstaller.Log = "Application"
' Add myEventLogInstaller to 'InstallerCollection'.
public class MyEventLogInstaller : Installer
private EventLogInstaller myEventLogInstaller;
//Create Instance of EventLogInstaller
myEventLogInstaller = new EventLogInstaller();
// Set the Source of Event Log, to be created.
myEventLogInstaller.Source = "TEST";
// Set the Log that source is created in
myEventLogInstaller.Log = "Application";
// Add myEventLogInstaller to the Installers Collection.
- On the Build menu, click Build
Solution to create
- Open the Visual Studio .NET Command Prompt.
- At the command prompt, change to the folder where
EventLogSourceInstaller.dll is located.
- Run the following command to create the EventSource:
For more information, visit the following Microsoft Web