自定义委派处理程序不适用于WEB API C#中的自定义路由

时间:2019-08-03 10:16:02

标签: c# asp.net-web-api asp.net-web-api2

我正在尝试在我的Web API项目中实现自定义委托处理程序。我希望我的自定义处理程序仅适用于特定路由,但不能正常工作。全局工作的处理程序或未执行的处理程序。

我从这里取了参考 link

这是我的默认路由,不需要调用处理程序。

config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
);

这是我要为其调用处理程序的自定义路由

config.Routes.MapHttpRoute(
            name: "Route2",
            routeTemplate: "edi/new/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional },
            constraints: null,
            handler: HttpClientFactory.CreatePipeline(new HttpControllerDispatcher(config),
                                                        new DelegatingHandler[]
                             { new ValidateKey(),
                                                            new LogRequestAndResponseHandler() })

注册处理程序。

config.MessageHandlers.Add(new ValidateKey());            
config.MessageHandlers.Add(new LogRequestAndResponseHandler());

我已经尝试了许多关于SO的链接,但是对我来说没有任何用。我在执行代码时没有任何错误。我不知道我在做什么错,因为这段代码对其他人来说很好用

0 个答案:

没有答案