Owin通话时长

时间:2015-07-08 22:41:58

标签: c# owin middleware

是否有简单的方法在c#中查找呼叫持续时间。

我正在使用Owin中间件拦截对API的调用并记录有关它们的信息,我想记录的部分内容是调​​用的持续时间。

<body>

<div class="container">
    <div class="row">
    <div class="col-sm-4" >.col-sm-4</div>
    <div class="col-sm-4" >.col-sm-4</div>
    <div class="col-sm-4" >.col-sm-4</div>
  </div>
</div>

</body>

如果我的跟踪实体上有持续时间字段用于存储通话的时间长度,那么录制它的最佳方式是什么?

public override async Task Invoke(IOwinContext context)
{
   var request = context.Request;
   var response = context.Response;
   var userName = request.User != null && request.User.Identity.IsAuthenticated ? request.User.Identity.Name : "No username";

   var entity = new TrackingEntity()
   {
      UserName = userName
   };

   // invoke the next middleware in the pipeline

   await Next.Invoke(context);

   WriteRequestHeaders(request, entity);
   WriteResponseHeaders(response, entity);

   await storage.InsertEntity(entity);
}

使用定时器的最准确方法是在调用next之前启动并在之后结束?

任何意见都会受到赞赏我认为我只是过分思考这一点。

提前致谢。

1 个答案:

答案 0 :(得分:2)

我认为您不需要创建计时器的开销,只需将开始时间记录到变量中,然后在另一个变量中结束时间以设置持续时间。

pageviewcontroller

这有点乱,但如果您在这个中间件中所做的只是记录,那么您希望它快速,这应该符合要求。