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?
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.