4

次のようなカスタム メッセージ ハンドラーを使用して 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 ステータス コードを返します ルート設定で何が欠けていますか?

4

0 に答える 0