The HTTP Error 403.14 – Forbidden is displayed when you try to access a website hosted on IIS having detailed errors enabled. As you can see in the screenshot, the error page says The Web server is configured to not list the contents of this directory and also indicates the most likely causes of this error.
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>
Answered on SO here, question: 403 - Forbidden on basic MVC 3 deploy on iis7.5
Run aspnet_regiis -i
. Often I've found you need to do that to get 4.0 apps to work. Open a command prompt as an Administrator
(right click the command prompt icon and select Run as Administrator):
cd \
cd Windows\Microsoft.NET\Framework\v4.xxx.xxx
aspnet_regiis -i
Once it has installed and registered, make sure you application is using an application pool that is set to .NET 4.0.
UPDATE: I just found an issue with this command. Using -i updated all application pools to ASP.NET 4.0.
Using aspnet_regiis -ir
installs the version of ASP.NET but does not change any web applications to this version. You may also want to review the -iru option.
I too ran into this error. All the configuration and permissions were correct. But I forgot to copy Global.asax to the server, and that's what gave the 403 error.
It's because of being too sure about what you (me) are doing!
On my machine there is IIS 7 installed but the required ASP.NET component (Control Panel->Programs->Turn On/Off->ASP.NET) was not.
So installing this solved the problem
I had the same issue. This Microsoft support article fixed it for me.
https://support.microsoft.com/en-us/help/2023146/mvc-2-and-asp.net-4-web-forms-applications-that-use-url-routing-might-return-http-404-errors-when-they-attempt-to-process-extensionless-urls-on-iis-7-and-iis-7.5
In the "Turn Windows Features On or Off" dialog box of the Windows Control Panel "Programs and Features" application, perform the following steps:
-or-
Re-enabling either the HTTP Error Redirection module or the Static Content Compression module ensures that ASP.NET and IIS correctly synchronize HTTP pipeline events. This enables the URL routing module to process extensionsless URLs.
In my case following approach helped me out:
aspnet_regiis -i
in Windows\Microsoft.Net\Framework
Adding modules to system.webServer
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
...
</system.webServer>
Try to apply the following settings shown below:
1) Give the necessary permission to the IIS_IUSRS
user on IIS Server
(Right click on the web site then Edit Permissions > Security).
2) If you use .NET Framework 4
, be sure that .NET Framework version is v4.0
on the Application Pool
that your web site uses.
3) Open Commanp Prompt as administrator
and run iisreset
command in order to restart IIS Server
.
Hope this helps...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With