【问题标题】:Will recycling an IIS application pool cause problems for in-progress sessions?回收 IIS 应用程序池是否会导致正在进行的会话出现问题?
【发布时间】:2012-08-22 07:13:05
【问题描述】:
我在 Windows 2008 x64 服务器、ASP.NET MVC 和 .NET 框架 4 上使用 IIS 7.5。
如果我在我的 Web 应用程序运行并且用户登录时回收应用程序池,1) 用户的会话和相关数据是否会被销毁,他们是否必须重新登录?并且,在我回收时正在进行的请求会失败,还是 IIS 会在执行回收之前完成这些请求?
在使用应用程序时回收我的 Web 应用程序的应用程序池有什么负面影响?
【问题讨论】:
标签:
session
iis
iis-7
application-pool
【解决方案1】:
如果您在内存中进行会话管理,那么您可能会遇到一些问题。如果您正在进行适当的会话管理(例如,在数据库中),那么用户应该没问题。当新应用启动并开始将内容加载到内存中以服务请求时,您会遇到速度变慢。
进行中的请求有机会完成,但机会有限(默认情况下它们有 90 秒)。
回收的缺点基本上分为两类:
您必须将所有内容重新加载到内存中(这需要时间,在此期间用户正在等待)。
长时间运行的请求将被终止(默认情况下,应用程序池有 90 秒的时间来完成其业务,例如长文件上传/下载可能必须重新启动,因为它与回收重叠)。