我正在开发使用.NET 4.5.1框架作为WebForm应用程序开发的面向公众的应用程序。
我们经常遇到应用程序缓慢的问题,当我们调查问题时,我们发现应用程序池上有很长时间的请求。
我们已将应用程序池队列长度定义为1000,并在“限制”
下设置120秒作为连接超时是否有任何IIS配置设置或web.config设置来终止工作进程下的任何长待处理请求进程?
我们有Windows 2012 R2和IIS 8.0
此应用程序也使用" in-proc"作为会话管理。 我们在生产环境中设置编译debug =" false" 和跟踪已启用=" false"
任何解决方案
答案 0 :(得分:0)
我不知道这是否是您的问题,但在一段时间不活动后,IIS会暂时停止ApplicationPool以节省资源。如果您的应用程序的启动时间非常长并且在一段时间内未被访问,那么在这种情况下您可能会遇到挂起。
克服问题
您可以禁用因不活动而被回收的AppPool。从IIS管理器中选择您的AppPool。在操作窗格中,应该有一个回收项。这将打开一个对话框,您可以在其中更改AppPool将被回收时的设置。默认值应该在一段时间之后,但也有其他选项。
答案 1 :(得分:0)
是的,您需要将其作为web.config的一部分
<system.web>
<httpRuntime executionTimeout="180" />
</system.web>
这样您可以以秒为单位设置限制。但是,你的超时请求可能很重要,所以我相信你应该优化它们,摆脱无限循环等等。至于您要求的限制,您可以阅读更多here。