У меня есть вызов веб-API, который должен использовать 2 делегирующих обработчика, но я никогда не попадаю во второй обработчик. Маршрут регистрируется обработчиками. Мне не разрешено устанавливать обработчики в глобальной конфигурации.Использование нескольких обработчиков делегирования в вызове веб-API
DelegatingHandler[] handlers = new DelegatingHandler[2];
handlers[0] = new HandlerA();
handlers[1] = new HandlerB();
RouteTable.Routes.MapHttpRoute(
name: "TestAPI",
routeTemplate: "api/{controller}",
handler: HttpClientFactory.CreatePipeline(
innerHandler: new HttpClientHandler(),
handlers: handlers
),
defaults: new { controller = "test"},
constraints: null
);
HandlerA запускает точку останова без дополнительных проблем.
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) {
if (request == null)
throw new ArgumentNullException("request");
//Breakpoint is hit
return base.SendAsync(request, cancellationToken);
}
Ожидалось, что я прибуду в HandlerB, но он никогда этого не сделает, он идет прямо к контроллеру API. Обработчик A не делает ничего для запроса.