MVC4 HTTP Error 403.14 - Forbidden

.Netasp.net Mvcasp.net Mvc-4IisHttp Status-Code-403

.Net Problem Overview


I have build a .net4.5 ASP.NET MVC4 web app which works fine locally (IIS Express & dev server) but once i deploy it to my web server it throws the 403 error. I have installed .Net 4.5RC on the server and even tried the aspnet_regiis -i bit that everyone recommended for their issues with previous versions of MVC/.Net but it did not help.

Any ideas?

EDIT: More info about the situation. The server is 32bit and I have 4 other MVC3 applications that work fine. It is just my MVC4 app that is not working.

.Net Solutions


Solution 1 - .Net

Try

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

Via

https://serverfault.com/questions/405395/unable-to-get-anything-except-403-from-a-net-4-5-website

Solution 2 - .Net

Error 403.14 is the HTTP error code for not being allowed to list the contents of a directory. Please be sure that

  1. You have setup the website as an application in IIS
  2. You have .NET 4.5 installed on the server
  3. You have set the application pool to run the proper version of the .NET framework (ie. it is not set to .NET 2.0
  4. You are using the integrated pipeline on your application pool
  5. .NET 4.5 is actually registered in IIS. Please see this post for a similar issue/resolution

Usually, a and d are the biggest issues surrounding MVC deployments to IIS

Solution 3 - .Net

Perhaps... If you happen to use the Publish Wizard (like I did) and select the "Precompile during publishing" checkbox (like I did) and see the same symptoms...

Yeah, I beat myself over the head, but after unchecking this box, a seemingly unrelated setting, all the symptoms described go away after redeploying.

Hopefully this fixes some folks.

Solution 4 - .Net

Windows-> Start -> Turn widows features on and off

Make sure you check required options in

enter image description here

Solution 5 - .Net

Before applying

runAllManagedModulesForAllRequests="true"/>

consider the link below that suggests a less drastic alternative. In the post the author offers the following alteration to the local web.config:

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

http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html

Solution 6 - .Net

There is a [Refactor --> Rename Bug][1] in Visual Studio 2012 that wrongly renamed the "id" inside the literal string value of the url parameter in my RouteConfig.cs. This caused a 403.14 on a fresh and otherwise correct setup in both Windows Server 2012 and Windows Server 2008 R2.

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

was changed to

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{renamed_text}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

[1]: http://connect.microsoft.com/VisualStudio/feedback/details/656466/refactor-rename-bug/ "Refactor --> Rename Bug"

Solution 7 - .Net

If you're running IIS 8.5 on Windows 8, or Server 2012, you might find that running mvc 4/5 (.net 4.5) doesn't work in a virtual directory. If you create a local host entry in the host file to point back to your local machine and then point a new local IIS website to that folder (with the matching host header entry) you'll find it works then.

Solution 8 - .Net

You can also get a 403 if when testing with dev server you are using integrated pipeline and then install as classic pipeline mode on your live IIS 7.5 web server, also I was missing my app_data folder which also was required

Solution 9 - .Net

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

U can use above code

Solution 10 - .Net

I had set the new app's application pool to the DefaultAppPool in IIS which obviously is using the Classic pipeline with .NET v.2.0.

To solve the problem I created a new App Pool using the Integrated pipeline and .NET v4.0. just for this new application and then everything started working as expected.

Don't forget to assign this new app pool to the application. Select the application in IIS, click Basic Settings and then pick the new app pool for the app.

Solution 11 - .Net

the one i see more frequently recently is IIS and allowing 32bit applications to run

Is this what you have tried. otherwise we need more information about production and dev server versions

Solution 12 - .Net

I have a bit different issue, on server 2012 somehow i forgot to enable asp.net 4.5 so if you have this issue, double check that you enable it.

Solution 13 - .Net

I'm running Windows Server 2012 R2 on Azure and ASP.NET 4.5, IIS 8

I solved this problem by uninstalling all of the ASP.NET items in Programs and Features, then reinstalling ASP.NET like this with Server Manager using Add Roles and Features: picked Role-Based or Feature-Based installation, picked my server, and then for Select Server Role picked Web Server (IIS)/Web Server/Application Development, then clicked ASP.NET 4.5, confirmed installation of a prerequisite, and then reinstalled ASP.NET 4.5.

My previous searches had lead me to believe that the problem actually stems from a registration problem with ASP.NET. With earlier versions of ASP.NET, there is actually a utility that you can run to register ASP.NET without reinstalling, but that doesn't seem to be available any longer.

Solution 14 - .Net

I solve the problem opening the visual studio, expanding the references and changing the property "Copy Local" to "True".

I discover this comparing the dlls of the old version with the Dlls of my new version (that was not working)

Solution 15 - .Net

In my case, my application's default page was index.html which was missing from the default document options. Adding it fixed the 403.14 Forbidden error.

Solution 16 - .Net

In my case the issue was caused by custom ActionFilterAttribute which was a kind of global filter attribute. The attribute instantiated a service through Autofac but the service crashed in constructor:

public ActionFilterAttribute()
{
    _service = ContainerManager.Resolve<IService>();
}

public class Service: IService
{ 
	public Service()
    {
        throw new Exception('Oops!');
    }
}

Solution 17 - .Net

In my case neither Windows Features nor aspnet_regiis -i didn't do the work. After hours of digging in the Internet, I made my own solution:

  1. In the IIS Manager in Modules I changed inherit to local in UrlRoutingModule-4.0 node:

enter image description here

  1. In web.config I pasted a mix of some tips from this forum:

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

Hope it helps

Solution 18 - .Net

Either I inadvertently changed my application pool .NET CLR Version to: No Managed Code OR it was changed when I changed the application pool for my new .NET 5 web app that I deployed on the same server.

Changing my application pool .NET CLR Version back to: .NET CLR Version v4.0.30319 resolved the issue.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionmithun_daaView Question on Stackoverflow
Solution 1 - .NetMarkKGreenwayView Answer on Stackoverflow
Solution 2 - .NetTommyView Answer on Stackoverflow
Solution 3 - .NetBrian KirkpatrickView Answer on Stackoverflow
Solution 4 - .NetKurkulaView Answer on Stackoverflow
Solution 5 - .NetJason KoopmansView Answer on Stackoverflow
Solution 6 - .Netuser641770View Answer on Stackoverflow
Solution 7 - .NetMastroView Answer on Stackoverflow
Solution 8 - .NetmarcusdevView Answer on Stackoverflow
Solution 9 - .NetJinto JohnView Answer on Stackoverflow
Solution 10 - .NetLeniel MaccaferriView Answer on Stackoverflow
Solution 11 - .NetMarkKGreenwayView Answer on Stackoverflow
Solution 12 - .NetVova BilyachatView Answer on Stackoverflow
Solution 13 - .NetfsbfView Answer on Stackoverflow
Solution 14 - .NetWagnerView Answer on Stackoverflow
Solution 15 - .NetErik K.View Answer on Stackoverflow
Solution 16 - .NetArtem VertiyView Answer on Stackoverflow
Solution 17 - .NetSylwia MView Answer on Stackoverflow
Solution 18 - .NetmidohioboarderView Answer on Stackoverflow