Web API响应时间

时间:2014-05-18 17:29:56

标签: c# asp.net-web-api

我正在构建一个服务器监控系统,并希望向Web API发送请求并在JSON对象中获取服务器的运行状况,如果它没有问题,如果它的数据库连接正常工作,它的响应时间等。

如何实现响应时间,说明Web API响应请求需要多长时间?

2 个答案:

答案 0 :(得分:9)

如果要实施Web Api Monitoring,可以创建自定义DelegatingHandler来跟踪操作持续时间和状态。

这是测量操作持续时间的一个非常基本的例子。持续时间被添加到响应中(非常无用);最好将这种数据存储到专用存储库中。

public class MonitoringDelegate : DelegatingHandler
{
    protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request,
        CancellationToken cancellationToken)
    {
        var watcher = Stopwatch.StartNew();
        var response = await base.SendAsync(request, cancellationToken);
        watcher.Stop();

        //store duration somewheren here in the response header
        response.Headers.Add("X-Duration", watcher.ElapsedMilliseconds.ToString());

        return response;
    }
}

答案 1 :(得分:1)

您可以在客户端上启动Stopwatch,并在收到答案后停止