Web API プロジェクトの HTTP 応答ヘッダーをログに記録しようとしています。
このプロジェクトは、VS2012、.NET 4.5、および ASP.NET MVC 4 によって開発されています。
次のDelegatingHandler
ようなサブクラスを作成しました。
public class LoggingHandler : DelegatingHandler
{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
// Execute the request
return base.SendAsync(request, cancellationToken).ContinueWith(task =>
{
var response = task.Result;
return response;
});
}
}
ただし、問題は、からヘッダー値を取得できないことresponse
です。response.Headers
は空のコレクションで、response.Content.Headers
という名前のキーだけが含まれてContent-Type
おり、HttpContext.Current
はnull
です。
同じロジックを使用してヘッダーをログに記録するWebAPIContribのコードを見てきましたが、それらのコードも機能していないようです。
では、Web API プロジェクトで HTTP 応答ヘッダーをトレースするにはどうすればよいでしょうか?