Диагностика ошибок 404 в IIS 7 и ASP.NET MVC

У меня есть приложение mvc, разработанное и протестированное с Cassini. Развернуто на моем сайте в GoDaddy, и страница по умолчанию подходит. Нажмите, чтобы войти в систему, и я получаю 404.

Я работаю под IIS 7, поэтому это неожиданно. Мои маршруты довольно просты:

        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default",                                              
            "{controller}/{action}/{id}",                           
            new { controller = "Public", action = "Index", id = "" } 
        );
        routes.MapRoute(
            "Report1",
            "Report/{action}/{start}/{end}",
            new { controller = "Report", action = "Index" }
        );
        routes.MapRoute(
            "Report2",
            "Report/{action}/{start}/{end}/{idList}",
            new { controller = "Report", action = "Index" }
        );

Любая идея, что может произойти или как я могу устранить эту проблему?

Ответ 1

Вы работаете в интегрированном режиме IIS7 ?

Классический режим IIS7 не позволяет не автоматически перенастраивать URL без привязки к ASP.NET(как IIS6).

Также убедитесь, что тэг Web.config <system.webServer> настроен правильно.

Ответ 2

Не используйте runAllManagedModulesForAllRequests. Вы хотите, чтобы IIS обрабатывал такие ресурсы, как изображения.

<system.webServer> <!-- Rather do NOT use this -->
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

Вместо этого добавьте модуль маршрутизации MVC

<system.webServer>
  <modules>
    <remove name="UrlRoutingModule-4.0" />
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
  </modules>
</system.webServer>

Ответ 3

Пробовал все, мне нужно было установить мою сетевую конфигурацию, чтобы она работала.

 <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

Ответ 4

У меня была та же проблема, я загрузил контроллер, web.config и другие классы, но я забыл загрузить папку bin.

После того как я загрузил папку bin, она сработала!