诊断IIS 7和ASP.NET MVC上的404错误

诊断IIS 7和ASP.NET MVC上的404错误,asp.net,asp.net-mvc,iis,iis-7,httphandler,Asp.net,Asp.net Mvc,Iis,Iis 7,Httphandler,我用卡西尼开发并测试了一个mvc应用程序。部署到GoDaddy上的我的站点,默认页面显示良好。点击登录,我得到一个404 我在IIS 7下运行,所以这是意外的。我的路线很简单: routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default",

我用卡西尼开发并测试了一个mvc应用程序。部署到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" }
        );

你知道可能发生了什么,或者我如何解决这个问题吗?

你是在IIS7集成模式下运行的吗

IIS7的经典模式不会自动将无扩展URL映射到ASP.NET(与IIS6非常相似)


还要确保您的
Web.config
标记配置正确。

尝试了所有方法,我必须这样设置我的Web配置,以使其正常工作

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

。您希望让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>

我也遇到了同样的问题,我上传了controller、web.config和其他类,但忘记上传bin文件夹


在我上传了bin文件夹后,它工作了

谢谢你,梅尔达。原来GoDaddy默认IIS7为经典模式。哇,这真的奏效了!但是为什么我会觉得它会回来困扰我呢?这个答案也很有效,而且似乎有一个更有效(和优雅)的方法。这个方法在ASP.NET Web API应用程序中对我很有效。该应用程序在本地运行,但当部署到任何其他环境时,我只收到一个404 for任何Web API请求。添加了上面提到的路由模块位,一切正常。这里有类似的问题:。谢谢我正在努力让MVC应用程序接受HTTP删除请求。这帮我解决了。谢谢同样的问题,如果我部署到其他环境,方法delete请求不起作用:iis 8正常,但在其他环境(iis 7)中我得到404