我有一个ASP.NET MVC应用程序,它部署到IIS 10上的多个服务器。所有路由都在那里正常工作。
在IIS 8.5上,{controller} / {action} / {id}后面的路由返回404.如果路由更改为{controller} / {action}?id = {id},则返回正确的结果用200码。
是否必须为IIS 8.5启用一个设置才能将{controller} / {action} / {id}正确映射到MVC控制器?
我的路线配置:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
网络配置的相关部分:
<system.web>
<compilation targetFramework="4.6.1" />
<httpRuntime targetFramework="4.5" maxUrlLength="99999" maxQueryStringLength="99999" />
<customErrors mode="RemoteOnly" />
<authentication mode="None" />
<authorization>
<allow users="*" />
</authorization>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="FormsAuthentication" />
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
</modules>
</system.webServer>
我已尝试this question中的建议,但他们没有修复404。
答案 0 :(得分:0)
似乎只有那个网站在IIS中出现了问题。删除和重新部署网站解决了问题