C# Asp.Net WebApi性能问题/响应缓慢

C# Asp.Net WebApi性能问题/响应缓慢,c#,asp.net-web-api,C#,Asp.net Web Api,在我的WebApi.NET4.6.2中,有一个调用的执行速度异常慢~15秒,我遇到了一个问题。当我去分析它时,我发现调用中的代码在

在我的WebApi.NET4.6.2中,有一个调用的执行速度异常慢~15秒,我遇到了一个问题。当我去分析它时,我发现调用中的代码在<200ms内执行相对较快的does db调用和处理,并将响应发送回客户端

我认为使用JSON进行序列化需要一段时间。因此,我在试图序列化的类的GetObjectData方法中设置了一个断点。它也能在几毫秒内完成工作

在这之后,如果我让它运行,它仍然需要大约14秒的剩余时间才能完成。这段时间纯粹是在客户端等待,没有下载发生


如何调试GetObjectData之后发生的事情并确定瓶颈?

我建议安装fiddler并检查clientBeginRequest和clientEndRequest值,如前所述

如果您的web API在HTTPs上,则可以在Fiddler上启用HTTPs拦截

您可以看到计时器,如下所示:

然后,您可以决定慢度是在服务器上还是在客户端应用程序中

您还可以尝试通过postman调用API,并检查响应出现在postman中需要多长时间

如果问题发生在服务器端,则可以添加日志过滤器或HttpModules,以查看何时收到请求、何时发送响应、每个方法的执行花费了多少时间。您还应该检查服务器CPU利用率和内存/磁盘利用率,看看这些是否会导致API性能出现任何问题


希望这有助于定位问题。

我使用了fiddler,它识别出服务器在15秒钟内没有开始响应。。。因此,它位于服务器端。这就是为什么我需要找出如何调试服务器日志记录是唯一的答案。如果添加了调试日志语句,然后查看代码的每个区域花费了多少时间,则可以启用调试级别日志记录。