Win XP event log: Access denied

S

Stephane

Hi,

I have an ASP.NET web site using event log to log errors. My home server
used to be Win 2000 and it has always worked fine. Few days ago, I installed
Win XP and since then, I have security problems... Here's the error I get:

System.Web.Services.Protocols.SoapException: Server was unable to process
request. --> Cannot open log for source {0}. You may not have write access.
--> Access is denied

I don't know how to set permissions in Win XP to let ASPNET user write in
event log.

Any idea??

Thanks,

Stephane
 
S

Stephane

Hi,

After few other tests, it looks like it's any of my applications which are
called by ASP.NET that are having trouble with event log. Here's the last
error:

System.InvalidOperationException: Cannot open log for source {0}. You may
not have write access. ---> System.ComponentModel.Win32Exception: Access is
denied

I didn't have this problem on windows 2000. But since I'm on Win XP now, I
have to solve this. I set full control to everyone on every drive of my
computer and it still not working...

Any idea of how to set permissions to write in event log in Win Xp?

Thanks,

Steph
 
R

richlm

see http://support.microsoft.com/default.aspx?scid=kb;en-us;842795

Yes the default registry permissions on XP/2003 are tighter than on 2000.

The first time your app tries to write to the event log, it checks to see if
an event source for your application (typically the application name)
already exists. If not, it tries to create it.

Event log sources are stored in the registry under:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\...

Changing file system permissions will have no effect on the registry. If you
start regedit.exe and locate the registry key above, right click and select
'Permissions' you can see which accounts do have access.
You could just add the ASPNET account here, but this is a BAD idea because
it will complicate deployment of your application and weaken security.

The usual solution is to create the event source at installation time using
EventLog.CreateEventSource (or the EventLogInstaller class). Installation
will normally be done in the context of an administrator account.

Here's a couple of links to get you started:
http://msdn.microsoft.com/library/d...bwlkWalkthroughCreatingEventLogInstallers.asp
http://msdn.microsoft.com/library/d...gyourapplicationassourceofeventlogentries.asp
 
S

Stephane

I solve my problem using impersonation in web.config like this...

<identity impersonate="true" userName="stephane" password="12345"/>

I guess this is not te best way, but at least it's working on my development
server.

Thanks,

Steph
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,535
Members
45,007
Latest member
obedient dusk

Latest Threads

Top