Вы пытались отлаживать свои маршруты, используя Phil Haack отладчик маршрутов на сервере?
Edit:
В IIS 7.5 вам не нужен какой-либо специальный обработчик без расширений, он обрабатывается автоматически, вам не нужно ничего менять. Это необходимо только на IIS 6, насколько я знаю.
Может ли это быть проблема? что если вы удалите этот специальный обработчик? возможно это - то, что останавливает это, чтобы пнуть в двигателе маршрута.
Edit:
Я дважды проверил, и, как я думал, начиная с IIS7, режим по умолчанию для домена приложения - Интегрированный режим . Это означает, что стек Asp.net включается при каждом запросе, тогда как в классическом режиме asp.net вызывается только при вызове определенных расширений (aspx ashx axd по умолчанию сопоставляется с фильтром aspnet_isapi).
UrlRoutingModule включается при каждом запросе, ничего от вас не требуя, потому что это HttpModule, а не Handler. (он просто должен быть зарегистрирован в файле конфигурации вашего приложения, нет необходимости сопоставлять его с расширением, но это по умолчанию в приложении MVC. Вы можете открыть свой файл Web.Config и убедиться, что у вас есть под узел
<modules runAllManagedModulesForAllRequests ="true">
...
<add name="UrlRoutingModule" type=.../>
</modules>
Вы уверены, что развернули сборки MVC на сервере?
Убедитесь, что для ссылок System.Web.Mvc , System.Web.Routing и System.Web.Abstraction для свойства Copy Local установлено значение true, чтобы убедиться, что использовать одни и те же сборки локально и на рабочем сервере ...
Если все это правильно, я не знаю, как вам помочь больше ... Надеюсь, это поможет вам или, по крайней мере, поставит вас на правильный путь.
EDIT:
Оу ... просто прочитайте ваш последний комментарий ... извините, я пропустил этот элемент в классическом режиме. Ваш заголовок упоминает IIS7.5, и я предполагал слишком много вещей. вот почему я запутался.
Честно говоря, мне пришлось заглянуть в книгу Стивена Сандерсона. У него есть контрольный список для устранения неполадок развертывания IIS6.
Я знаю, что вы говорите, что только при использовании MSBuild 4 происходит сбой, но он все еще может быть полезным
Убедитесь, что Default.aspx установлен как страница содержимого по умолчанию. Это может быть источником 404.
Затем, чтобы иметь URL без расширений, в прошлый раз, когда я развернул на IIS6, я использовал простую карту подстановки, и у меня никогда не было проблем ...
Если вы все еще в беде, извините, что я не могу помочь ... не то чтобы я не пытался :) удачи