每个路由消息处理程序导致404找不到

时间:2014-04-10 15:13:49

标签: asp.net-web-api

我有一个非常简单的Web API消息处理程序。当全局应用此消息处理程序时,它可以正常工作。如果我按路由应用它,那么我的路由开始失败并出现404 Not Found错误。我调试它到能够正确定位控制器的程度。已成功创建控制器实例,但框架无法找到合格的操作方法来处理我的请求。这是我的每路径消息处理程序配置的代码

public void RegisterRoutes(HttpConfiguration config)
{

    var handler = new AuthenticationHandler();
    var handlers = new DelegatingHandler[] {handler};

    var routeHandlers = HttpClientFactory.CreatePipeline(new HttpControllerDispatcher(config), handlers);
    config.Routes.MapHttpRoute("DefaultApi", "api/{tenancy}/{controller}", null, null, routeHandlers);
}

1 个答案:

答案 0 :(得分:0)

你看起来没错。

我通常将其编码为:

 HttpMessageHandler AuthenticationHandler = HttpClientFactory.CreatePipeline(new HttpControllerDispatcher(config), new DelegatingHandler[] { new AuthenticationHandler() });
 config.Routes.MapHttpRoute(name: "DefaultApi", routeTemplate: "api/{tenancy}/{controller}", defaults: null, constraints: null, handler: AuthenticationHandler);

您还要求获取404错误的URI是什么?什么是租赁?