【发布时间】:2020-01-14 14:07:40
【问题描述】:
我在 IIS 8.5 上运行 ASP.NET 4.5 Web API 应用程序。在工作进程下,我看到某些请求被 IIS 排队并且永远不会被服务。这可能是内存泄漏问题。我还在调查。在调查期间,我读到了thread pool settings。
文章讨论了减少争用的推荐线程设置。文章说在 machine.config 中进行这些更改。我的问题是我可以在 web.config 中进行这些更改吗?
对于解决排队问题,我们还有其他建议吗?
【问题讨论】:
-
“从未被送达”?请求永远被处理(并且应用程序仍然存在)的唯一方法是,如果当前正在处理的请求数等于线程池中的线程并且它们都死锁。
-
@GabrielLuci:这个场景很有趣。在我的控制器中有多个动作/数据端点。 IIS 随机将其中一些放入队列中。我已经看到这些电话在等待其他请求时排了很长时间。一旦一个端点被放入队列,对这些端点的后续调用将保留在队列中。
-
您如何监控这些请求?在 IIS 管理器中?
-
@GabrielLuci:我打开 IIS > 选择左上角的根节点(机器名称),然后从右窗格中选择工作进程。之后,我选择了相应的应用程序池,它会向我显示活动请求。
-
你怎么知道等待的是同一个请求?该视图不会自动刷新,也不会显示任何请求标识符。你只看等待时间吗?
标签: c# .net asp.net-mvc iis asp.net-web-api