2

最近、Web サーバーがすべての要求/応答データを HTTP 経由でログ サーバーに送信するアプリケーション用のログ ソリューションを作成しました。委任ハンドラーを使用してこれを行いました

http://www.asp.net/web-api/overview/advanced/http-message-handlers

これは非常にうまく機能していますが、クライアントに送り返す前にメッセージをログに記録する必要がない方法でこれを行う方法があるかどうかに興味がありました. メッセージをログに記録することは、エンド ユーザーにとって何の価値もありません。そのため、データを取得する前に、ログ ロジックが終了するのを待つ必要がないようにしたいと考えています。

私が探しているのは、メッセージがクライアントに返された後、スレッドが消える前に呼び出され、リクエストとレスポンスにアクセスできるフックのようなものだと思います。

求めすぎですか?

ありがとう!

4

1 に答える 1

1

ロギングを行う別のスレッドを作成し、応答をクライアント ブラウザに返すことができます。

たとえば、Web API 2 を使用している場合:

public IHttpActionResult Get(int id)
{
  //create response_data

  new System.Threading.Tasks.Task(() =>
  {
    //do the logging
  }).Start();

  return Content(HttpStatusCode.Accepted, response_data);
}
于 2016-10-18T12:21:39.647 に答える