Ответ 1
При сопоставлении маршрутов происходит перегрузка MappHttpRoute, которая позволяет указать HttpMessageHandler. Вы можете добавить обработчик ко всем маршрутам, которые в нем нуждаются, и опустить его для маршрута, который не должен его использовать.
Для получения дополнительной информации см. Ссылку . Следующий образец берется из этого ресурса:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "Route1",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "Route2",
routeTemplate: "api2/{controller}/{id}",
defaults: new { id = RouteParameter.Optional },
constraints: null,
handler: new MessageHandler2() // per-route message handler
);
config.MessageHandlers.Add(new MessageHandler1()); // global message handler
}
}