Jordan
Jordan

Reputation: 9911

MVC 4 application giving a 404 when deployed

I have an ASP.NET MVC 4 project using .NET 4.5 that I am trying to publish to IIS 7.0 using Visual Studio 2012. When I debug the application in IIS Express everything works wonderfully. When I publish it to the server, the MVC requests return 404. I have a few aspx pages on the site and they all work fine. Below is my routing scheme. It is boilerplate code:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

Thanks.

Edits:

I got it! I had to add the following to system.webServer in my web.config:

<modules runAllManagedModulesForAllRequests="true"/>

Can anyone tell me why this is?

Upvotes: 7

Views: 7277

Answers (2)

Chris Halcrow
Chris Halcrow

Reputation: 32050

This reference may help:

https://www.iis.net/configreference/system.webserver/modules

"runAllManagedModulesForAllRequests previously had to be set to true to support routing. However, once IIS 7 has been updated with a Service Pack, the value of runAllManagedModulesForAllRequests can be set to false or omitted when working with ASP.NET routing."

(obviously installing an IIS or Windows service pack needs careful consideration first)

Upvotes: 1

Dan Hunex
Dan Hunex

Reputation: 5318

<modules runAllManagedModulesForAllRequests="true"/>

Reference : Here

Upvotes: 2

Related Questions