3

我们有一个基本的 ASP Web API 设置:一个ApiController带有多个配置为 POST 请求端点的方法。[FromBody]这些接收通过属性反序列化的相当大的 JSON 流。

发生的情况是,如果连接被中断/终止,请求将保留在 IIS 工作进程请求队列中。他们似乎没有超时。更糟糕的是,由于某些东西RequestHandler一直很忙,在多次失败和“卡住”请求之后,CPU 消耗接近 100%。日志记录表明ApiController尚未执行中的操作方法。

长话短说。有什么办法可以让这些方法超时,以便将它们从队列中删除?正常的 web.config 似乎不起作用。

4

2 回答 2

2

在大多数情况下,编译 debug = true 是问题.. 这里有一些关于类似问题的更多讨论..如果这也没有帮助...当 CPU 消耗接近 100% 时进行 w3wp 进程的内存转储并进行转储使用windows调试工具分析..

于 2013-10-14T22:13:50.610 回答
0

您可以配置应用程序池的回收设置。在 IIS 的此设置中,您可以使用计划、请求编号或特定的 MB 限制来回收应用程序池。

于 2013-10-15T04:20:03.980 回答