Sitecore 8.2中的Web API路由



我使用Express迁移工具迁移了Sitecore 7.2 Sitecore 8.2的应用程序。迁移后,Web API在停止工作。我正在使用以下给定方法映射路由

 [UsedImplicitly]
        public class ConfigRegister
        {
            /// <summary>
            /// Startup method to bind all configurations for site core pipeline.
            /// </summary>
            /// <param name="args"></param>
            public virtual void Process(PipelineArgs args)
            { RouteConfig.RegisterRoutes(RouteTable.Routes);
     }
        }

然后使用以下代码摘要进行注册

public static void Register(HttpConfiguration config)
        {
         config.MapHttpAttributeRoutes();
            config.Routes.MapHttpRoute(
                name: "ControllersApi",
                routeTemplate: "WebApi/CustomerPortal/{controller}/{action}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }

我遇到了一个名为" ms_attributeroutewebapi"的路由,已经在路由集合中。路由名称必须是唯一的。参数名称:名称。

但是当我评论行

config.MapHttpAttributeRoutes();

我正在遇到错误{"消息":"发生了错误。":" System.InvalidOperationException"," stacktrace":"在System.Web.http.Routing.RouteCollectionRoute.get_subroutes() r n在system.web.http.webhost.routing.httpwebroute.getRoutedata(httpcontextbase httpcontext)

您的帮助解决此问题的帮助非常感谢

我假设您在初始化管道下有一个,正确?

这是我们以前做过的,在8.2上工作:

    public void Process(PipelineArgs args)
    {
        HttpConfiguration httpConfig = GlobalConfiguration.Configuration;
        httpConfig.Routes.MapHttpSessionRoute("WebApiRoute", "webapi/{controller}/{action}/{id}", true, new { id = RouteParameter.Optional });          
    }

如果上述不起作用,请尝试此操作(每个栖息地):

public void Process(PipelineArgs args)
{
     RouteTable.Routes.MapHttpRoute("Feature.Demo.Api", "api/demo/{action}", new
        {
           controller = "Demo"
        });
}

最新更新