Deploy asp.net mvc beta to iis 6 causing 404's

I found a solution to my problem from Steve Sanderson's blog (Thanks Steve):

Use a wildcard mapping for aspnet_isapi.dll. This tells IIS 6 to process all requests using ASP.NET, so routing is always invoked, and there’s no problem. It’s dead easy to set up:

  • open IIS manager (run -> inetmgr -> OK)
  • right-click your app, go to Properties
  • then Home Directory tab, then click Configuration.
  • Under Wildcard application maps, click Insert (not Add, which is confusingly just above)
  • then enter C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll for “Executable”, and uncheck Verify that file exists.

I can't seem to write comments yet. So I'll write a new answer.

There are a few similar questions going around on stackoverflow. I'm using MVC 3. I know the question was MVC 2 related. But since this is the first stackoverflow post I bumped in to, I think it's worth mentioning that:

  • when you use MVC 3, you need to add a new extension mapping with the executable of the .NET 4 framework (C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll)

<edit>I just found out that I even don't need to set up the extension mapping. </edit>

  • It still didn't work for me then :) I still had to 'Allow' ASP.NET v4.0.30319 in the Web Service Extensions section in IIS:
    • open IIS
    • click on the server node
    • open the Web Service Extensions section
    • select the ASP.NET v4.0....
    • right click --> Allow Good to go!