+2  A: 

This is happening because of the IIS setting "Check if file exists" for the web project.

What I had to do for one of my web projects was create a new extension for my web app. So I go to INETMGR > WebApp > Properties > Directory Tab > Configuration Button > Mappings Tab > Add Button and set the Executable to aspnet_isapi.dll, set Extension to ".*" and un-check "Check that file exists".

JMP
I see. I imagine, then, that since I am on a shared server I cannot change this setting?
Anders
You probably can't do it yourself. I called my hosting company and they did it for me while I was on the phone, it really shouldn't take too long.
JMP
This should be a per-application setting, not a site-wide setting. You should be able to change this for your application.
tvanfosson
@tvanfosson, depends on which version of IIS you're running. Some versions don't have app pools.
JMP
Alright I have contacted my hosting service, hopefully they can assist me with this issue. Thank you for clarifying what the issue was.
Anders
A: 

It looks like an IIS configuration issue. Extensionless routing's possible, but it can be a bit of pain to get running.

Phil Haack has an article on getting MVC apps running on IIS 6 here - I don't know how much access you'll have to the IIS console if it's a shared environment, so it may or may not be useful.

48klocs