如何处理IIS回收
How to handle IIS recycle
我发现我的 ASP.NET 应用程序 运行 在 IIS 下,时不时完全重启。让应用程序池回收重要吗?
应用程序池回收时到底发生了什么?
是否保证会调用 Application Start 事件,这样我就可以重新启动我的 "timed jobs"?
回收是否有可能杀死当前请求或流程并破坏用户体验?如果是,如何处理?
我正在使用 IIS 10,默认回收设置为常规时间间隔 1740 分钟(29 小时)。
谢谢!
Is it important to let the application pool recycle?
是的 - 主要是清理任何泄漏的内存或其他资源,但也有其他好处。
Is it guaranteed that Application Start event will be invoked, so I can restart my "timed jobs"?
否 - Application Start
在发出 请求 时发生。
IIS 不是调用计划作业的正确平台。请改用 Windows 服务或任务计划程序。
Is it possible that the recycling is killing a current request or flow and ruining user experience? If yes, how to handle that?
如果您严重依赖基于内存的会话,那么是的,这是可能的。现有请求将有合理的机会完成,因此如果有长 运行 请求,则它们可能会被杀死。如果您使用的是内存会话,会话肯定会被清除。解决这个问题的最佳方法是更改为更持久的会话,如数据库持久会话。
底线 - 如果计划任务是您的主要关注点,那么请使用与 IIS 不同的平台。 IIS 被设计为 request/response 平台。
我发现我的 ASP.NET 应用程序 运行 在 IIS 下,时不时完全重启。让应用程序池回收重要吗?
应用程序池回收时到底发生了什么?
是否保证会调用 Application Start 事件,这样我就可以重新启动我的 "timed jobs"?
回收是否有可能杀死当前请求或流程并破坏用户体验?如果是,如何处理?
我正在使用 IIS 10,默认回收设置为常规时间间隔 1740 分钟(29 小时)。
谢谢!
Is it important to let the application pool recycle?
是的 - 主要是清理任何泄漏的内存或其他资源,但也有其他好处。
Is it guaranteed that Application Start event will be invoked, so I can restart my "timed jobs"?
否 - Application Start
在发出 请求 时发生。
IIS 不是调用计划作业的正确平台。请改用 Windows 服务或任务计划程序。
Is it possible that the recycling is killing a current request or flow and ruining user experience? If yes, how to handle that?
如果您严重依赖基于内存的会话,那么是的,这是可能的。现有请求将有合理的机会完成,因此如果有长 运行 请求,则它们可能会被杀死。如果您使用的是内存会话,会话肯定会被清除。解决这个问题的最佳方法是更改为更持久的会话,如数据库持久会话。
底线 - 如果计划任务是您的主要关注点,那么请使用与 IIS 不同的平台。 IIS 被设计为 request/response 平台。