【问题标题】:per-route message handler is resulting in 404 not found每个路由消息处理程序导致 404 未找到
【发布时间】:2014-04-10 15:13:49
【问题描述】:

我有一个非常简单的 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);
}

【问题讨论】:

    标签: asp.net-web-api


    【解决方案1】:

    你所拥有的看起来是正确的。

    我通常这样编码:

     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);
    

    您还请求什么 URI 来获取 404 错误?什么是租赁?

    【讨论】:

    • 我怀疑某个地方出了什么问题。我今天会调查并发布更新。
    猜你喜欢
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    相关资源
    最近更新 更多