IIS 8.5为{controller} / {action} / {id}返回404

时间:2017-11-30 23:34:52

标签: asp.net asp.net-mvc iis

我有一个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。

1 个答案:

答案 0 :(得分:0)

似乎只有那个网站在IIS中出现了问题。删除和重新部署网站解决了问题