I have an IIS7.5 web-site, on Windows Server 2008, with an ASP.NET MVC2 web-site deployed to it. The website was built in Visual Studio 2008, targeting .NET 3.5, and IIS 5.1 has been successfully configured to run it as well, for local testing.
We've installed the world's simplest MVC application (the one which is created when you create a new MVC2 project in Visual Studio), and we are getting 404s on any page we try and access - e.g.
<my_server>/Home/About
will generate a 404.
I've asked this question on StackOverflow as well, but that was before I knew it was a server issue.
I have checked the following things:
- There are 404 entries in the IIS log, corresponding to each request.
- The application pool for the web-site is set to use the Integrated pipeline.
- The "customErrors" mode is set to off.
- .NET 3.5 SP1 is installed
- ASP.NET MVC 2 is installed
- I've used MVC Diagnostics to confirm all MVC DLLs are being found.
- ASP.NET is enabled in IIS, which we've demonstrated by running the MVC Diagnostics page.
- KB 2023146 did highlight that HTTP Redirection was off, so we've turned it on, but no joy.
Any ideas will be greatly appreciated!
Someone did suggest that there might be problems running it caused by Windows Server 2008 being 64-bit - does anyone know anything about this?
We finally nailed this issue by exporting the IIS configuration of a working server, and comparing it to ours.
It was a really obscure setting which had been changed from the default.
IIS ROOT → request Filtering → Filename Extensions Tab → Edit Feature Settings → Allow unlisted file name extensions
This should be ticked.
This can be set at the IIS level, or the site-level.
The first thing to confirm is that the extensionless URL hotfix has been applied: http://support.microsoft.com/kb/980368.
That should do the trick, but if not, does a simple test.aspx page work correctly?
Whether or not it's 32-bit or 64-bit won't make a difference for ASP.NET MVC. It's fully supported in both.