【问题标题】:Web API response timeWeb API 响应时间
【发布时间】:2014-05-18 17:29:56
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    如果要实现 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;
        }
    }
    

    【讨论】:

    • 谢谢,但对我来说做这个客户端是最有意义的。 :) 毕竟,响应时间才是最重要的。
    • 是和不是。如果您的客户出现减速,那就太迟了。使用 DelegatingHandler 允许您在某处存储时间并积极处理性能问题。
    • 如何在 .net core 中使用您的解决方案?
    【解决方案2】:

    您可以在客户端上启动Stopwatch,并在您收到遮阳篷时停止它

    【讨论】:

    • 是的,在客户端做这件事很有意义。谢谢。 :)
    • 不客气 ;-) 有时简单的事情是最好的^^
    猜你喜欢
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    相关资源
    最近更新 更多