C# ASP.Net核心网站在收到一系列请求后停止响应
在IIS上运行InProc的ASP.Net核心网站的生产过程中,我遇到了以下问题。已安装的.Net核心运行时为2.2.8 在signar上发出推送通知后,我的客户端将向特定URL发送大约100个请求,该URL绑定到一个控制器方法,如下所示:C# ASP.Net核心网站在收到一系列请求后停止响应,c#,asp.net-core,iis,C#,Asp.net Core,Iis,在IIS上运行InProc的ASP.Net核心网站的生产过程中,我遇到了以下问题。已安装的.Net核心运行时为2.2.8 在signar上发出推送通知后,我的客户端将向特定URL发送大约100个请求,该URL绑定到一个控制器方法,如下所示: [HttpPost()] [Route("Api/GetData")] public string[] GetData() 在处理了几个请求之后,服务器突然停止响应几分钟,然后立即处理所有响应。在应用程序日志中看不到错误,IIS日志显示请求的响应时间很长
[HttpPost()]
[Route("Api/GetData")]
public string[] GetData()
在处理了几个请求之后,服务器突然停止响应几分钟,然后立即处理所有响应。在应用程序日志中看不到错误,IIS日志显示请求的响应时间很长
我已经在IIS中启用了分析耗时超过9秒的请求的功能,并且我看到IIS实际会及时处理需要花费很长时间才能响应的请求
例如:
- IIS日志:47952ms
- IIS请求跟踪日志失败:
GetData()
重现了这个问题,该版本只返回一个静态字符串数组。我们发现数组的大小很重要。我们以88KB的响应复制了这个问题,但没有一个小的响应(2.5K)。查看.net核心日志,该方法的结果似乎被迅速计算出来,但响应本身却悬而未决(我们还没有弄清楚原因)升级到.Net Core 3.1解决了问题…
我保留这个问题,以防有人能提供解释。您有任何异步/等待代码吗?对我来说,这听起来像是阻塞。您是否在等待
GetData[]
中的某些内容(例如数据库中的数据)?可能处理时间太长。您发布的图像没有显示根本原因。记录在FRT日志中的整个过程在1秒内完成。请转到日志->请求详细信息->性能视图,然后单击查看跟踪。请发布耗时9秒的流程。就是这样,没有。它们都显示您是否尝试设置最高日志级别并检查错误消息?是否有任何异步/等待代码?对我来说,这听起来像是阻塞。您是否在等待GetData[]
中的某些内容(例如数据库中的数据)?可能处理时间太长。您发布的图像没有显示根本原因。记录在FRT日志中的整个过程在1秒内完成。请转到日志->请求详细信息->性能视图,然后单击查看跟踪。请发布耗时9秒的流程。就是这样,没有。它们都显示您试图设置最高日志级别并检查错误消息吗?