views:

1473

answers:

3

What I want to achieve is simple:

Notice that "my-site" is an empty website with a bunch of folders in it, "foo", "bar", "baz", etc.

So when I right click on "foo" and choose "New > virtual directory" and add my application I've written in VS.NET and then try to navigate to http://localhost/foo/upload I get this error:

Parser Error Message: An error occurred loading a configuration file: Failed to 
start monitoring changes to 'C:\InetPub\my-site\foo\web.config' 
because access is denied.

The thing is, there is no web config. in the "foo"-folder, and it shouldn't since it's only a normal folder in the site. If I add the virtual directory at the top level, at say http://localhost/foo_upload, everything works as it should... so, what am I doing wrong here?

A: 

What version of IIS are you using (5.1, 6, or 7)?

+5  A: 

It sounds like a permissions problem with your system - for a .NET account the user context ASP.NET runs in requires access to your site.

On systems up to Windows Server 2000 this user was a local account simply called ASPNET, after that is changed to one of the NT_AUTHORITY accounts - the easiest way to find this is to provide the IIS WPG group (a local group) with access to the account.

MS provides instructions at http://support.microsoft.com/kb/316721/, use the above to determine which user account you should check access for.

Chris
I highly doubt this is it? Considering it's looking for a file that doesn't (and shouldn't) exist?
thr
I was so wrong, perfect - fixed it.
thr
A: 

I'm just answering for someone who has the same problem and found this topic.

I added a permission to Everyone (in this case, it would be in the folder C:\InetPub\my-site\foo\). Then I printed on the page what user is executing the app in this folder...

Something like:

labelCurrentUser.Text = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

Then I removed the permission to everyone and added the user that I got.

Marcelo Mourão