如何处理IIS回收

时间:2016-03-29 01:47:24

标签: c# asp.net .net iis iis-10

我发现在 IIS 下运行的 ASP.NET应用程序正在不时地重新启动。让应用程序池回收很重要吗?

应用程序池回收时究竟发生了什么?

是否可以保证会调用应用程序启动事件,因此我可以重新启动我的"定时作业"?

回收是否可能导致当前的请求或流量被破坏并破坏用户体验?如果是的话,如何处理?

我正在使用 IIS 10 ,默认回收设置为常规时间间隔1740分钟(29小时)。

谢谢!

1 个答案:

答案 0 :(得分:4)

  

让应用程序池回收是否很重要?

是的 - 主要用于清理任何泄露的内存或其他资源,但也有其他好处。

  

是否可以保证将调用Application Start事件,因此我可以重新启动我的"定时作业"?

否 - Application Start在发出请求时发生。

IIS不是调用预定作业的正确平台。请改用Windows服务或任务计划程序。

  

回收是否可能导致当前的请求或流量被破坏并破坏用户体验?如果是的话,如何处理?

如果你非常依赖基于记忆的会话,那么是的,它是可能的。现有请求将有合理的机会完成,因此如果有长时间运行的请求,那么它们可能会被杀死。如果您使用的是内存中会话,那么会话肯定会被清除。解决此问题的最佳方法是更改​​为持久性会话,如数据库持久会话。

底线 - 如果计划任务是您主要关注的问题,那么请使用与IIS不同的平台。 IIS被设计为请求/响应平台。

相关问题