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 回答