Маршрут Web API с пользовательским обработчиком не работает

Я пытаюсь добавить маршрут к моему WebAPI с помощью специального обработчика сообщений, например

config.Routes.MapHttpRoute(
    name: "TestRoute",
    routeTemplate: "Protected/TestMe",
    defaults: null,
    constraints: null,
    handler: new CustomHandler()
);

Код обработчика

internal class CustomHandler : DelegatingHandler
{
    protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        HttpResponseMessage respMsg = new HttpResponseMessage();
        respMsg.Headers.Add("MyCustomHeader", "Test");
        respMsg.StatusCode = HttpStatusCode.NoContent;
        return Task.FromResult(respMsg);
    }
}

но каждый раз, когда я получаю доступ к указанному маршруту, я не получаю свой собственный заголовок или код NoContent, а получаю результат от маршрута, но если я добавлю обработчик как глобальный, как этот

config.MessageHandlers.Add(new CustomHandler());

он работает и возвращает мой пользовательский заголовок и код состояния NoContent. Чего мне не хватает в настройке маршрута?

0 ответов

Другие вопросы по тегам