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