Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 723
Jordan Avatar asked Apr 23 '13 20:04

Jordan


2 Answers

<modules runAllManagedModulesForAllRequests="true"/>

Reference : Here

like image 189
Dan Hunex Avatar answered Oct 17 '22 22:10

Dan Hunex


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)

like image 25
Chris Halcrow Avatar answered Oct 17 '22 21:10

Chris Halcrow