Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Web Api排除路由中的消息处理程序_C#_Asp.net Web Api - Fatal编程技术网

C# Web Api排除路由中的消息处理程序

C# Web Api排除路由中的消息处理程序,c#,asp.net-web-api,C#,Asp.net Web Api,我有一个消息处理程序,每个请求都会调用它。一切正常。但是,我希望有一个不使用消息处理程序的控制器 有没有一种方法可以排除在特定路由中调用消息处理程序?如何在以下路由中使用覆盖: configuration.Routes.MapHttpRoute( name: "RouteWithHandler", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.

我有一个消息处理程序,每个请求都会调用它。一切正常。但是,我希望有一个不使用消息处理程序的控制器


有没有一种方法可以排除在特定路由中调用消息处理程序?

如何在以下路由中使用覆盖:

configuration.Routes.MapHttpRoute(
        name: "RouteWithHandler",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional },
        constraints: null,
        handler: new MyMessageHandler() 
    );

然后在没有处理程序的情况下添加路由。

不起作用。即使存在每路由消息处理程序,也会执行全局消息处理程序,并且在到达
HttpRoutingDispatcher
(以及特定于路由的处理程序)之前执行全局消息处理程序。