诊断IIS 7和ASP.NET MVC上的404错误
我用卡西尼开发并测试了一个mvc应用程序。部署到GoDaddy上的我的站点,默认页面显示良好。点击登录,我得到一个404 我在IIS 7下运行,所以这是意外的。我的路线很简单:诊断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",
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