我有一个非常简单的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);
}
答案 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是什么?什么是租赁?