ASP MVC in IIS 7 results in: HTTP Error 403.14 - Forbidden

savvas sopiadis picture savvas sopiadis · Nov 16, 2009 · Viewed 162.5k times · Source

I'm developing an ASP MVC web project. Now I have a requirement which forces me to deploy to an IIS7 inmiddle of development (to check some features). I'm getting the above mentioned error message whenever I try to type the URL of the web site. (Note: development machine: Vista Home Premium, IIS7)

What I have done until now:

Edited the HOSTS file (C:\WINDOWS\system32\drivers\etc\hosts).

Put two domains in it (127.0.0.1 domain1.com & 127.0.0.1 domain2.com).

Created a folder c:\websites\dirOfApplication and deployed from within Visual Studio 8 to this folder.

In IIS7 created a new site with host name domain1.com and application folder the above.

Typing the address domain1.com in Web browser results in the above error (HTTP Error 403.14 - Forbidden - The Web server is configured to not list the contents of this directory.)

I think I'm missing something but don't know what! Tryed to deploy the files System.Web.Mvc, System.Web.Abstraction & System.Web.Routing wit the same outcome. Whenever I try to hit F5 and run the application, it works fine!

Answer

Cyril Mestrom picture Cyril Mestrom · Jun 14, 2012

Maybe it's useful to someone: After converting my app to MVC 4 with .NET framework 4.5 and installing the framework on my server with IIS 7.0 I encountered the same 'forbidden' error mentioned in the question. I tried all options described above to no avail, when I noticed the

<system.webServer>
 <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

was missing from my web.config. After adding this, everything worked. Simple, but easy to overlook...

EDIT:

Of course the solution above will work, but it is indeed a waste of resources. I think it is better to add the routing module as pointed out by Chris Herring in the comments.

<system.webServer>
  <modules>
    <remove name="UrlRoutingModule-4.0" />
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
  </modules>
</system.webServer>