ASP.NET MVC was born with the best support of IIS 7 in integrated mode. This is because IIS 7 integrated mode loads every request to ASP.NET pipeline, regardless of its file extension, which ASP.NET MVC usually doesn’t have.
However, in earlier version of IIS or IIS 7 classic mode, file path without extension is not recognized to be handled by ASP.NET MVC. Therefore, it always give user a HTTP 404 Not Found error, if user still wants to type the Url in a traditional MVC approach.
A general workaround is to add a extension in IIS to let it be handled by aspnet_isapi.dll, and modify Url routes to add this extension to every controller.
e.g. /Home.mvc/Index
However, this doesn’t seem like a very beautiful way to having an extension like .mvc in the Url, also it hurts SEO for understanding this page. Fortunately, there’s still something we can do to make it.
The technique is called “Wildcard mapping”, or “Star mapping”, and it’s one of the hidden gems in IIS 6.
Phil Haack used to have a famous blog post on the details.