What I want to achieve is simple:
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.
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.