Http Post - ExecuteRequestHandler 状态下长时间延迟

Http Post - ExecuteRequestHandler 状态下长时间延迟

我有一个 asp.net mvc 网站托管在 Windows Server 2012r2 Standard 上,该网站使用 KnockoutJS 在网格中显示数据。此服务器专用于我遇到问题的进程 - 它不处理任何其他请求。

对控制器的“GetRecords”操作进行 ajax 调用。这会非常快速地返回几十条记录的数据。

用户可以修改数据并提交更新。knockout 代码再次进行 ajax 调用,这次发布记录。此时网站“挂起”了很长时间(超过 10 分钟),但它确实成功完成,更新日期保存到数据库中。在“挂起时间”期间,IIS 工作进程的 CPU 使用率徘徊在 50% 左右。

我正在尝试找出导致延迟的原因。延迟似乎发生在控制器操作的第一行代码到达之前。我已向操作添加了跟踪语句,我可以看到,一旦执行了第一行,操作就会在几秒钟内完成。

在 IIS 管理器中,我在页面“挂起”期间深入查看了“工作进程”\“当前请求”,我可以看到状态列为“ExecuteRequestHandler”,模块名称为“ManagedPipelineHandler”。没有显示其他“当前请求”。

使用 Chrome 开发工具,我捕获了为更新发布的 json,其大小约为 4mb。

我已经排除了由带宽引起的问题,因为我已经从本地运行的浏览器(在网络服务器上)进行了测试,并且得到了相同的延迟。

有没有什么建议我可以更改 IIS 中的配置来提高帖子的性能?

相关内容