Ran into a weird error today. I had IIS serving pages on my devel machine and after working out the kinks in my code I went to FTP them to the production server. Since that machine didn’t have FTP I shared the folder and uploaded them from another machine that was on my desk. After that I went to reload the page and got the following error:
Failed to start monitoring changes to [...] because access is denied
I figured it was because I had shared the page and IIS must not like that, so I unshared it expecting that to resolve the issue — it did not. From there I dug through many pages of Google results all telling me to make sure the files weren’t marked Read Only and to make sure the ASPNET user had permissions. Interestingly enough such a user did not exist on my machine, possibly due to a different version of IIS or the fact that I do not have Visual Studio.net installed on that system.
It wasn’t until I compared permissions with another web folder that still worked that I spotted the difference. One had permission granted access to “Authenticated Users” and given it Modify permissions. After following these steps I was once again able to serve pages:
- Right Click the Virtual Directory in IIS
- Click “Edit Permissions…”
- Select the Security Tab
- Click the Edit button
- Click the Add button
- Type “Authenticated Users” †
- Click the Check Names button to ensure that it recognizes the name
- Click OK
- Ensure the Modify checkbox is checked
- Click OK until all remaining popup windows are closed
† If a name is not recognized it will pop up a “Name Not Found” box, whereas if it is recognized it will prefix it with your computer name and underline it (e.g.: fettesps\username).
If Authenicated Users is not recognized as a user, try ASPNET instead, which is what most guides suggested (but did not work for me).
After making these changes you should now be able to access your site again. If not, please consult Microsoft’s Knowledge Base article for more possible solutions.